Skip to content

JS/TS → Python 概念映射表

本页提供了 JavaScript/TypeScript 概念到 Python 的完整映射,帮助你快速建立概念对应关系。

数据类型

JS/TS 概念Python 对应相似度说明详情
numberint, floatPython 区分整数和浮点数
stringstr基本相同,格式化语法不同
boolean (true/false)bool (True/False)注意首字母大写
nullNoneis None 检查
undefined--Python 无此概念-
Arraylist可变有序序列
Objectdictdict 键必须可哈希
Setset基本相同
MapdictPython dict 保持插入顺序
Tuple (TS)tuplePython tuple 不可变

变量与常量

JS/TS 概念Python 对应相似度说明详情
let直接赋值无需声明关键字
const全大写命名只是约定,非强制
var--不推荐,直接赋值-
模板字符串 `${}`f-string f"{}"语法略不同

控制流

JS/TS 概念Python 对应相似度说明详情
if/else if/elseif/elif/elseelif 而非 else if
switch/casematch/casePython 3.10+,功能更强
for...offor...in关键字不同
for...infor key in dict遍历键名
whilewhile基本相同
try/catch/finallytry/except/finallycatch → except
throwraise关键字不同
&&and使用英文单词
||or使用英文单词
!not使用英文单词
? : (三元)x if cond else y语序不同

函数

JS/TS 概念Python 对应相似度说明详情
functiondef关键字不同
箭头函数 =>lambdalambda 仅单表达式
默认参数默认参数语法相同
...args (剩余参数)*args接收元组
...array (展开)*list解包列表
解构 {a, b}**kwargs接收字典
returnreturn基本相同

类与对象

JS/TS 概念Python 对应相似度说明详情
classclass关键字相同
constructor__init__方法名不同
thisself必须显式声明
new Class()Class()无需 new
extendsclass Child(Parent)语法不同
super()super()基本相同
#private_name (约定)Python 无真正私有
static类属性概念类似
get/set@property装饰器实现
toString()__str__魔术方法

模块与包系统

JavaScript/TypeScriptPython相似度说明详情
import { foo } from './module'from module import foo无需 ./ 相对路径
import * as mod from './module'import module导入整个模块
export function foo() {}直接定义 (模块级可见)Python 无需显式 export
export default ...无直接对应Python 使用 __all__ 控制
export { a, b }__all__ = ['a', 'b']控制 import *
package.json__init__.py / pyproject.toml包元数据和初始化
index.js (入口)__init__.py (包入口)Python 可重新导出成员
node_modules/site-packages/第三方包安装目录
相对导入 './module'相对导入 from . import modulePython 使用点号
绝对导入 'module'绝对导入 import module基于模块搜索路径

工程化工具

JS/TS 概念Python 对应相似度说明详情
npm/pnpm/yarnPoetry/uv命令类似
npm initpoetry init / uv init初始化项目
npm installpoetry install / uv sync安装依赖
npm add <pkg>poetry add / uv add添加依赖
npm run <script>poetry run / uv run运行脚本
package.jsonpyproject.toml项目配置
package-lock.jsonpoetry.lock / uv.lock锁定文件
node_modules/.venv/依赖目录
ESLintRuff代码检查
PrettierRuff format代码格式化
.eslintrc.jspyproject.toml [tool.ruff]配置文件
TypeScriptType Hints + mypy类型系统
interfaceProtocol / TypedDict接口定义

高级特性

JS/TS 概念Python 对应相似度说明详情
HOC (高阶组件)装饰器概念类似
Generator / yieldyield 生成器基本相同
Promiseasyncio.Future异步模型不同
async/awaitasync/await语法相似
using (TC39 提案)with 语句上下文管理

常用 API

JS/TS 概念Python 对应说明
console.log()print()控制台输出
JSON.parse()json.loads()JSON 解析
JSON.stringify()json.dumps()JSON 序列化
fetch() / axiosrequests / httpxHTTP 请求
setTimeout()asyncio.sleep()延时 (异步)
Array.map()map() / 列表推导映射
Array.filter()filter() / 列表推导过滤
Array.reduce()functools.reduce()归约
Array.find()next(x for x in ...)查找
Array.includes()in 运算符包含检查
Object.keys()dict.keys()获取键
Object.values()dict.values()获取值
Object.entries()dict.items()获取键值对
Array.forEach()for 循环遍历
Array.sort()sorted() / list.sort()排序
String.split()str.split()字符串分割
String.join()str.join()字符串连接
String.trim()str.strip()去除空白
String.includes()in 运算符子串检查
Math.floor()math.floor() / //向下取整
Math.ceil()math.ceil()向上取整
Math.round()round()四舍五入
Math.random()random.random()随机数

操作符

JS/TSPython说明
=====Python 无严格相等,== 已足够
!==!=不等于
****幂运算
////整数除法
%%取模
??or (部分场景)Python 无空值合并
?.(无直接对应)可用 getattr() 或 try/except
...* / **展开/解包

快速对比示例

数组/列表操作

javascript
// JavaScript
const arr = [1, 2, 3, 4, 5]
arr.push(6)
arr.map((x) => x * 2)
arr.filter((x) => x > 2)
arr.find((x) => x === 3)
arr.includes(3)
python
# Python
arr = [1, 2, 3, 4, 5]
arr.append(6)
[x * 2 for x in arr]         # 列表推导
[x for x in arr if x > 2]    # 过滤
next(x for x in arr if x == 3)  # 查找
3 in arr                      # 包含检查

对象/字典操作

javascript
// JavaScript
const obj = { name: 'Alice', age: 25 }
obj.city = 'Beijing'
Object.keys(obj)
Object.values(obj)
Object.entries(obj)
python
# Python
obj = {"name": "Alice", "age": 25}
obj["city"] = "Beijing"
obj.keys()
obj.values()
obj.items()

异步操作

javascript
// JavaScript
async function fetchData() {
  const response = await fetch(url)
  const data = await response.json()
  return data
}
python
# Python
async def fetch_data():
    async with httpx.AsyncClient() as client:
        response = await client.get(url)
        data = response.json()
        return data

学习文档整合站点