五一假期,我建议你偷偷学这两门编程语言,Python vs JavaScript 10 大语法差异

223 阅读7分钟

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 应用。

image.png

image.png