Python
生成式人工智能与大模型训练推理,必须掌握的编程语言
不用多说,它广泛应用于科学和特定领域,包括数据科学、人工智能、机器学习、计算机视觉和图像处理、医学、生物甚至是天文学。
可以说是数据科学和人工智能编程的皇冠
JavaScript
AI 应用全栈开发,且唯一能在浏览器上运行的编程语言
它是互联网前端开发岗位的第一门编程语言,诞生于 1998 年,它陪伴着我们从互联网 PC 时代 IT 技术崛起,而后推出 H5 跨端等技术,跟随移动互联网走向浪潮之巅;直到后疫情时代随着国内经济周期大环境下滑,整个前端行业出现饱和与新需求萎靡不振。有人说:互联网大基建时代已过,前端已死!
但事实上真是这样么?2025 年 AI 发展迅猛的今天,智能体 MCP 等技术又再次把这门编程语言和编程技术推向新的高潮。
我们看到了很多先进的 AI 应用平台都采用前端技术栈,比如:Dify 整个开源的 Ai DevOps 平台产品都是 TypeScript,就连 OpenAI、Suna 这些都在采用 Nest.js 全栈开发 AI 应用。
国内独立开发者先驱 idoubi 基本上也是 Vercel 生态下,全栈开发去落地 AI 应用的。
之前还被吐槽诟病的动态类型,后面微软推出了 TypeScript(可以理解为带有静态类型的 JavaScript)之后,标志着前端编程语言发展已经走向成熟。
下面,让我们感受下这两门编程语言的区别:
1. 语法块
Python
使用缩进定义语法块和区域
JavaScript
使用大括号 {} 来给相同的代码块
2. 变量定义
Python
直接赋值定义一个变量
# 比如 <variable_name> = <value>
x = 5
JavaScript
需要多加一个 var 对变量进行修饰且最后跟一个分好;
// 比如 var <variable_name> = <value>;
var x = 5;
有时候要限制作用于的话,还可以使用 let 关键字,将变量作用域限制在代码块中。
// 比如 let <variable_name> = <value>;
let x = 5;
3. 变量命名规范
Python
蛇形命名 (snake_case),应该 “小写,下划线分割单词” 以提高辨识度
first_name
JavaScript
小驼峰命名(lowerCamelCase),变量名以小写字母开始,每个新的单词以大写字母开始
firstName
4.常量
Python
仅通过全大写命名提示开发者,在代码运行层面并没有做限制,实际上这个值还是能被修改的,并非只读。
TAX_RATE_PERCENTAGE = 32
JavaScript
定义了不能在程序里修改且无法重新分配修饰符的常量,使用 const 关键字
const TAX_RATE_PERCENTAGE = 32;
如果尝试改变常量的值,会报错:
5. 数据类型和值
Python
具有三种数值类型,可帮助我们更科学的执行精确的计算。这些数字类型包括:int(整数),float(浮点数)和 complex(复数)。
它们中的每一个都有其自己的属性,特征和应用领域。
JavaScript
只有两种数值类型:Number 和 BigInt。Number 既可以是整数也可以是浮点数。
None vs. null
在 Python 中,有一个特殊的值叫做 None,我们通常使用它来描述变量在程序中没有值的状态。
JavaScript 中的等效值是 null,它表示变量指向尚未创建的对象
undefined 值
在 JavaScript 中,我们有一个特殊值,当我们声明变量而不分配初始值时会自动分配这个特殊值。
可以看到,变量 x 的值是 undefined。
在 Python 中,必须为变量分配一个初始值。没有初始值会声明失败。这时候可以分配个 None 表示不存在。
原始数据类型
Python 具有 4 种原始数据类型:整数类型(int)、浮点数类型(float)、布尔类型(bool)和字符串类型(str)。
JavaScript 具有 6 种原始数据类型:undefined、布尔值、字符串、数字、BigInt 和 Symbol。
6. 注释
Python
# Comment
JavaScript
// Comment
多行注释
Python
# Multi-line comment
# in Python to explain
# the code in detail.
JavaScript
/*
Multi-line comment
in JavaScript to explain
the code in detail.
*/
7. 内置数据结构
Tuples
有一个称为 tuple 的内置数据结构,它与 list 非常相似,但不可变。因此,在程序执行期间无法更改它,它可以用于存储不应修改的数据。
在 JavaScript 中,没有内置这种数据结构。但是可以使用语言的某些特性来实现类似的数据结构。
Lists vs. Arrays
在 Python 中,lists 用于在同一数据结构中存储一系列值。可以在程序中对其进行修改、索引、切片和使用。
在 JavaScript 中,此数据结构的等效版本称为 array。
哈希表
在 Python 中,有一个称为 dictionary 的内置数据结构,可帮助我们将某些值映射到其他值并创建键值对。这可以用作哈希表。
JavaScript 没有这种类型的内置数据结构,可以使用语言的某些元素来实现相同的功能。
8. 运算符
Floor Division
大多数算术运算符在 Python 和 JavaScript 中的用法完全相同,Floor Division 运算符却略有不同。
在 Python 中, 用双斜杠(//)表示 floor division 运算(也称为 “整数除法”)。
在 JavaScript 中,没有特定的 floor division 运算符。 但是可以调用 Math.floor() 方法将结果四舍五入到最接近的整数。
比较值和类型
在 Python 里使用 == 运算符来比较两个值或者数据类型是否相等。
# Comparing Two Integers
>>> 0 == 0
True
# Comparing Integer to String
>>> 0 == "0"
False
在 JavaScript 中也有此运算符,但它的工作方式略有不同,它会在执行比较之前将两个对象转换为相同的类型。
如果我们使用 JavaScript 运行上一个示例中的 “整数与字符串” 比较(0 == "0"),比较的结果为 True 而不是 False ,因为 JavaScript 在比较之前会将比较的值转换为相同的数据类型:
在 JavaScript 中,要检查值和数据类型是否相等,我们需要使用此运算符 ===(严格相等运算符)。
所以说,Python 中的 == 等价于 JavaScript中的 === 运算符。
逻辑运算符
类型运算符
检查对象的类型
9. 输入和输出
Input 输入
Python 会在控制台生成交互式输入,
而 JavaScript 则会在浏览器界面显示提示框。
Output 输出
一个在控制台打印,一个在浏览器中打印结果
10. 条件语句
if/else 语句
多重条件
Switch 语句
Python 没有内置这种控制结构。
11. for 循环和 while 循环
通过遍历迭代
While 循环
JavaScript 还支持 do..while
do {
// Code
} while (condition);
12. 函数
Python 使用 def 关键字,JavaScript 使用 function
13. 面向对象编程
Class
构造器和属性
类方法
在 Python 中
class Circle:
def __init__(self, radius, color):
self.radius = radius
self.color = color
def calc_diameter(self):
return self.radius * 2
在 JavaScript 中
class Circle {
constructor(radius, color) {
this.radius = radius;
this.color = color;
}
calcDiameter() {
return this.radius * 2;
}
}
Instances 实例化
在 Python 中
my_circle = Circle(5, "Red")
在 JavaScript 中需要使用 new 关键字
my_circle = new Circle(5, "Red");
总结
Python 和 JavaScript 在各自的应用场景里都是非常强大的语言。
Python 可用于 Web 开发和其他广泛的应用场景,包括科学研究领域。 JavaScript 主要用于 Web 开发(前端和后端)和移动跨端应用程序开发。
希望这篇文章对你有所帮助。感受 Python 和 JavaScript 之间的细微差异。
有助于我们后续全栈开发 AI 应用。