如果你想理解 Python 和 JavaScript 之间的区别,那么本文适宜你。
这两种语言十分风行且功能强大,然而它们之间的确存在要害差别,咱们将在这里具体介绍它们。
在本文中,你将学习:
- Python 和 JavaScript 在事实世界中的不同利用。
- Python 和 JavaScript 之间要害的语法和性能差别。
让咱们开始! ✨
Python VS JavaScript:理论利用
咱们将从疾速浏览它们的理论应用程序开始。
Python
因为其弱小的性能和多功能性,Python 曾经成为世界上简直每一个迷信应用程序中必不可少的工具,它是一种反对不同编程范式的通用编程语言。
它宽泛用于迷信和业余利用,包含数据迷信、人工智能、机器学习、计算机科学教育、计算机视觉和图像处理、医学、生物学甚至天文学。
它还用于 Web 开发,这是咱们能够开始将其应用程序与 JavaScript 应用程序进行比拟的中央。Python 用于后端开发,这是 Web 开发畛域,负责创立用户看不见的元素,例如应用程序的服务器端。
JavaScript
只管能够应用 Python 开发 Web 应用程序的后端局部,然而能够应用 JavaScript 开发应用程序的后端和前端。
前端是用户看到并与之交互的应用程序局部。每当你看到网站或 Web 应用程序或与之交互时,即在“幕后”应用 JavaScript。
同样,当你与挪动应用程序进行交互时,你可能会应用 JavaScript,因为像 React Native 这样的框架使咱们能够编写适应不同平台的应用程序。
JavaScript 在 Web 开发中利用如此宽泛,是因为它是一种多功能语言,为咱们提供了开发 web 应用程序组件所需的工具。
Python 和 JavaScript 应用程序之间的差别
简而言之,开发人员将 Python 用于一系列迷信应用程序。他们应用 JavaScript 进行 web 开发、面向用户的性能和服务器。
Python VS JavaScript: 语法
当初你晓得了它们的用处,让咱们看看它们是如何编写的以及它们的语法差别。
咱们将探讨它们在次要元素上的差别:
- 代码块
- 变量定义
- 变量命名约定
- 常量
- 数据类型和值
- 正文
- 内置数据结构
- 操作符
- 输出 / 输入
- 条件语句
- For 循环和 While 循环
- 函数
- 面向对象编程
Python 和 JavaScript 中的代码块
每种编程语言都有本人的款式来定义代码块,让咱们看看它们在 Python 和 JavaScript 中的区别:
Python 如何定义代码块
Python 依附缩进来定义代码块。当一系列间断的代码行在同一级别缩进时,它们被视为同一代码块的一部分。
咱们应用它来定义条件,函数,循环以及 Python 中基本上每个复合语句。
这些是一些示例:
???? 提醒: 稍后,咱们将看到 Python 和 JavaScript 中这些元素之间的特定差别。目前,请留神缩进。
JavaScript 如何定义代码块
相同,在 JavaScript 中,咱们应用花括号({}
)对属于同一代码块的语句进行分组。
这些是一些示例:
Python 和 JavaScript 中的变量定义
赋值语句是任何编程语言中最根本的语句之一。让咱们看看如何在 Python 和 JavaScript 中定义变量。
如何在 Python 中定义变量
要在 Python 中定义变量,咱们要写出变量的名称,后跟等号(=
)和将调配给该变量的值。
像这样:
<variable_name> = <value>
例如:
x = 5
如何在 JavaScript 中定义变量
语法在 JavaScript 中十分类似,然而咱们只须要在变量名称前增加关键字 var
并以分号(;
)结尾即可。
像这样:
var <variable_name> = <value>;
例如:
var x = 5;
咱们还能够应用关键字 let
:
let <variable_name> = <value>;
例如:
let x = 5;
???? 提醒: 在这种状况下,当咱们应用 let 时,变量将具备块作用域。它只会在定义它的代码块中被辨认。
???? 提醒: 在 JavaScript 中,语句的开端用分号 (
;
) 来标记,但在 Python 中,咱们只需以新行开始,以标记语句的完结。
Python 和 JavaScript 中的变量命名约定
Python 和 JavaScript 遵循两种不同的变量命名约定。
如何在 Python 中命名变量
在 Python 中,咱们应该应用 snake_case
命名款式。
依据 Python 款式指南:
变量名与函数名遵循雷同的约定。
函数名称应小写,必要时用下划线分隔单词以进步可读性。
因而,Python 中的典型变量名称如下所示:
first_name
???? 提醒: 款式指南还提到:“仅在曾经是支流款式的上下文中才容许应用
mixedCase
,以放弃向后兼容。”
如何在 JavaScript 中命名变量
相同,咱们应该在 JavaScript 中应用 lowerCamelCase
命名款式,名称以小写字母结尾,而后每个新单词以大写字母结尾。
依据 MDN Web 文档的 JavaScript 准则文章:
对于变量名,请应用 lowerCamelCasing,并在适当的中央应用简洁的、易于浏览的语义名称。
因而,JavaScript 中的典型变量名称应如下所示:
firstName
Python 和 JavaScript 中的常量
太好了。当初你对变量有了更多的理解,咱们来谈谈常量,常量是在程序执行期间不能更改的值。
如何在 Python 中定义常量
在 Python 中,咱们依赖于命名约定来定义常量,因为该语言中没有严格的规定能够避免更改其值。
依据 Python 款式指南:
常量通常在模块级别定义,并 以所有大写字母书写,并用下划线分隔单词。
这是咱们用于在 Python 中定义常量的命名形式:
CONSTANT_NAME
例如:
TAX_RATE_PERCENTAGE = 32
???? 提醒: 这对咱们本人和其余开发人员来说是一个红色正告,批示不应在程序中批改此值。然而从技术上讲,该值依然能够批改。
如何在 JavaScript 中定义常量
相同,在 JavaScript 中,咱们能够定义不能在程序中更改的常量,并且不能重新分配变量标识符。
但这并不意味着值自身不能更改。
依据 MDN Web 文档中的 const
文章:
const
申明创立对值的只读援用。这并不意味着它持有的值是不可变的——只是不能重新分配变量标识符。例如,在内容是一个对象的状况下,这意味着对象的内容 (例如,它的属性) 能够被更改。
要在 JavaScript 中定义常量,咱们在变量名称之前增加关键字 const
:
const TAX_RATE_PERCENTAGE = 32;
如果尝试更改常量的值,则会看到此谬误:
因而,该值不能更改。
???? 提醒: 要运行和测试 JavaScript 代码的小片段,能够应用 Chrome 开发者工具中的控制台。
Python 和 JavaScript 中的数据类型和值
让咱们看看 Python 和 JavaScript 数据类型之间的次要区别。
数值数据类型
Python具备三种数值类型,可帮忙咱们为迷信目标执行准确的计算,这些数字类型包含:int
(整数)、float
(浮点数)和complex
(复数)。它们都有本人的属性、特色和利用。
相比之下,JavaScript只有两种数字类型:Number
和 BigInt
,整数和浮点数都被认为是 Number
类型的。
依据 MDN Web Docs 中的 Number 文章:
像 JavaScript 代码中的
37
这样的数字文本是一个浮点值,而不是整数。日常应用中没有独自的整数类型。(JavaScript 当初具备 BigInt 类型,但并非旨在代替 Number 日常应用。37
依然是 Number,而不是 BigInt。)
None vs. null
在 Python 中,有一个非凡的值 None
,咱们通常应用它来批示变量在程序中的特定地位没有值。
JavaScript中的等效值为 null
,“示意无意短少任何对象值”。
undefined 值
在 JavaScript 中,咱们有一个非凡的值,当咱们申明变量而不调配初始值时,该值会主动调配。
这是一个例子:
如你所见,变量 x
的值是 undefined
。
在 Python 中,你必须为变量调配一个初始值,没有初始值就无奈申明它。
???? 提醒: 你能够在 Python 中将
None
调配为变量的初始值,以示意短少值。
Python 和 JavaScript 中的原始数据类型
原始数据类型代表咱们能够在编程语言中应用的最根本的值。让咱们比拟一下这两种语言的原始数据类型:
- Python有四种原始数据类型:整数(
int
)、浮点数(float
)、布尔值(bool
)和字符串(str
)。 - JavaScript具备六种原始数据类型:未定义(
undefined
)、布尔值(Boolean
)、字符串(String
)、数字(Number
)、BigInt 和符号(Symbol
)。
如何用 Python 和 JavaScript 编写正文
正文对于编写简洁易读的代码十分重要。让咱们看看如何在 Python 和 JavaScript 中应用它们:
单行正文
- 在 Python 中,咱们应用井号(
#
)编写正文,该符号之后同一行上的所有字符均被视为正文的一部分。 - 在 JavaScript 中,咱们写两个斜杠(
//
)来开始单行正文。
这是一个图形示例:
在 Python 中:
# Comment
在 JavaScript 中:
// Comment
多行正文
- 在 Python 中,要编写多行正文,咱们以井号标签开始每一行。
- 在 JavaScript 中,多行正文以
/*
结尾,并以*/
结尾,这些符号之间的所有字符均视为正文的一部分。
在 Python 中:
# Multi-line comment
# in Python to explain
# the code in detail.
在 JavaScript 中:
/*
Multi-line comment
in JavaScript to explain
the code in detail.
*/
Python 和 JavaScript 中的内置数据结构
Python 和 JavaScript 中的内置数据结构也有要害区别。
元组(Tuples)
- 在 Python 中,咱们有一个称为
tuple
的内置数据结构,它与列表十分类似,但不可变。因而,在程序执行期间无奈更改它,因而它用于存储不应批改的数据。 - 在 JavaScript 中,没有具备这些特色的内置数据结构,只管你能够应用语言的某些性能来实现相似的数据结构。
列表(Lists)vs. 数组(Arrays)
- 在 Python 中,列表 用于在同一数据结构中存储一系列值。能够在程序中对其进行批改、索引、切片和应用。
- 在 JavaScript 中,此数据结构的等效版本称为array。
这是一个例子:
哈希表(Hash Tables)
- 在 Python 中,有一个称为 字典(dictionary)的内置数据结构,可帮忙咱们将某些值映射到其余值并创立键值对,这可用作哈希表。
- JavaScript没有这种类型的内置数据结构,然而有某些办法能够应用语言的某些元素来重现其性能。
Python 和 JavaScript 中的运算符
运算符对于以任何编程语言编写表达式都是必不可少的,让咱们看看它们在 Python 和 JavaScript 中的次要区别。
向下取整除
只管大多数算术运算符在 Python 和 JavaScript 中的工作原理完全相同,但向下取整除运算符却略有不同。
- 在 Python 中,底数宰割操作(也称为“整数除法”)用双斜杠(
//
)示意。 - 在 JavaScript 中,咱们没有特定的向下取整除运算符。相同,咱们调用
Math.floor()
办法将后果四舍五入到最靠近的整数。
比拟值和类型
在 Python 中,咱们应用 ==
运算符比拟两个值及其数据类型是否相等。
例如:
# Comparing Two Integers
>>> 0 == 0
True
# Comparing Integer to String
>>> 0 == "0"
False
在 JavaScript 中,咱们也有此运算符,但它的工作形式略有不同,因为它在理论执行比拟之前将两个对象转换为雷同的类型。
如果咱们应用 JavaScript(0 == '0'
)查看上一个示例的“整数与字符串”比拟的后果,则后果为 True
而不是 False
,因为在比拟之前将值转换为雷同的数据类型:
在 JavaScript 中,要查看值和数据类型是否相等,咱们须要应用此运算符 ===
(三重等号)。
当初咱们失去了预期的后果:
太好了吧?
???? 提醒:Python 中的
==
运算符的工作形式相似于 JavaScript 中的===
运算符。
逻辑运算符
- 在 Python 中,三个逻辑运算符是:
and
、or
、和not
。 - 在 JavaScript 中,这些运算符为:
&&
、||
和!
。
类型运算符
- 在 Python 中,要查看对象的类型,咱们应用
type()
函数。 - 在 JavaScript 中,咱们应用
typeof
运算符。
这是它们语法的图形形容:
Python 和 JavaScript 的输出和输入
要求用户输出并向用户显示值是十分常见的操作,让咱们看看如何用 Python 和 JavaScript 做到这一点:
输出
- 在 Python 中,咱们应用
input()
函数申请用户输出,咱们将音讯写在括号内。 - 在 JavaScript 中,一种代替办法(如果正在浏览器上运行代码)是显示带有
window.prompt(message)
的小提示,并将后果调配给变量。
这两种办法的次要区别在于,在 Python 中,用户会被提醒在控制台中输出一个值,而在 JavaScript 中,浏览器上会显示一个小的提示符,它会要求用户输出一个值。
???? 提醒:你将在 Python 控制台中看到以下输出值:
在 JavaScript 中,如果你关上 Chrome Developer 工具并在控制台中输出以下代码行:
此提示符将显示:
输入
- 在 Python 中,咱们应用
print()
函数将值打印到控制台,并在括号内传递该值。 - 在 JavaScript 中,咱们应用
console.log()
将值打印到控制台,并在括号内传递该值。
???? 提醒:如果你应用的是浏览器,则还能够调用
alert()
以显示一个小提示,并在括号内传递音讯(或值)。
Python 和 JavaScript 中的条件语句
应用条件,咱们能够依据特定条件是 True
还是 False
抉择程序中产生的事件,让咱们看看它们在 Python 和 JavaScript 中的区别。
if 语句
- 在 Python 中,咱们依附缩进来批示哪些代码行属于条件代码。
- 在 JavaScript 中,必须用括号将条件括起来,用花括号将代码括起来,该代码也应缩进。
if/else 语句
两种语言中的 else 子句十分类似,惟一的区别是:
- 在 Python 中,咱们在
else
关键字后写一个冒号(:
) - 在 JavaScript 中,咱们用花括号(
{}
)将属于此子句的代码括起来。
多种条件
要编写多个条件:
- 在 Python 中,咱们编写关键字
elif
后跟条件。条件之后,咱们编写一个冒号(:
),并在下一行缩进代码。 - 在 JavaScript 中,如果条件之后(由括号突围),咱们将编写关键字
else if
。条件实现后,咱们编写花括号并在括号内缩进代码。
Switch in JavaScript
- 在 JavaScript 中,咱们还有一个额定的控件构造,可用于依据表达式的值抉择要产生的事件,该语句称为
switch
。 - Python没有这种类型的内置控件构造。
这是该语句的个别语法:
在 JavaScript 中:
switch (expression) {
case value1:
// Code
break;
case value2:
// Code
break;
case value3:
// Code
break;
default:
// Code
}
???? 提醒:咱们能够依据须要增加任意多个 case,并且表达式能够是变量。
Python 和 JavaScript 中的 For 循环和 While 循环
当初让咱们看看如何在 Python 和 JavaScript 中定义不同类型的循环以及它们的次要区别。
For 循环
在 Python 中定义 for 循环的语法比 JavaScript 中的语法绝对简略。
- 在 Python 中,咱们编写关键字
for
,后跟循环变量的名称,关键字in
以及对range()
函数的调用,以指定必要的参数。而后,咱们编写一个冒号(:
),后跟缩进的循环体。 - 在 JavaScript 中,咱们必须明确指定几个值。咱们以
for
关键字结尾,后跟括号,在这些括号内,咱们定义循环变量及其初始值,必须为False
的条件以进行循环,以及如何在每次迭代中更新该变量。而后,编写花括号以创立代码块,而后在花括号内编写缩进的循环主体。
遍历可迭代对象
咱们能够在 Python 和 JavaScript 中应用 for 循环来迭代可迭代的元素。
- 在 Python 中,咱们编写关键字
for
,后跟循环变量,in
关键字和 iterable。而后,咱们编写一个冒号(:
)和循环主体(缩进)。 - 在 JavaScript 中,咱们能够应用
for .. of
循环。咱们先写for
关键字,后跟括号,而后在这些括号内,写关键字var
,后跟循环变量,关键字of
和 iterable。咱们用花括号将循环的主体括起来,而后缩进它。
在 JavaScript 中,咱们还有 for .. in
循环可循环拜访对象的属性。
依据 MDN Web 文档:
for ... in
语句迭代对象的所有可枚举属性(包含继承的可枚举属性),这些可枚举属性由字符串键入(疏忽由 Symbol 键入的属性)。
这是一个例子:
const object = {a: 1, b: 2, c: 3};
for (const property in object) {console.log(property, object[property]);
}
当咱们在 Chrome 开发者工具的控制台中运行此代码时,输入为:
While 循环
While 循环在 Python 和 JavaScript 中十分类似。
- 在 Python 中,咱们先写
while
关键词,后跟条件,冒号(:
),并在新行中写出循环体(缩进)。 - 在 JavaScript 中,语法十分类似。所不同的是,咱们必须用括号将条件括起来,并用花括号将循环的主体括起来。
JavaScript 中的 do..while 循环
在 JavaScript 中,咱们还有一种 Python 不存在的循环类型。
这种循环称为 do..while
循环,因为它至多执行一次操作,并且在条件为 True
时持续运行。
这是根本语法:
do {// Code} while (condition);
???? 提醒:这种类型的循环保障代码将至多执行一次。
当咱们要求用户输出时,这是特地有用的,因为用户将被提醒输出。如果输出是无效的,咱们能够持续这个程序。然而如果它有效,咱们能够提醒用户再次输出该值,直到它无效为止。
Python 和 JavaScript 中的函数
对于编写简洁,可保护和可读的程序,函数十分重要。语法在 Python 和 JavaScript 中十分类似,但让咱们剖析它们的次要区别:
- 在 Python 中,咱们编写关键字
def
,后跟函数名称,并在参数列表的括号内。在此列表之后,咱们编写一个冒号(:
)和函数主体(缩进)。 - 在 JavaScript 中,惟一的区别是咱们应用
function
关键字定义了一个函数,并用花括号将函数的主体括起来。
此外,Python 和 JavaScript 函数之间还有一个十分重要的区别:函数参数。
在 Python 中,传递给函数调用的参数数量必须与函数定义中定义的参数数量匹配。如果不是这种状况,将产生异样。
这是一个例子:
>>> def foo(x, y):
print(x, y)
>>> foo(3, 4, 5)
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
foo(3, 4, 5)
TypeError: foo() takes 2 positional arguments but 3 were given
在 JavaScript 中,这是没有必要的,因为参数是可选的。你能够应用比函数定义中定义的参数更少或更多的参数来调用函数。默认状况下,为短少的参数调配 undefined
值,并且能够应用 arguments
对象拜访其余参数。
这是 JavaScript 中的示例:
留神如何应用三个参数调用函数,然而函数定义的参数列表中仅蕴含两个参数。
???? 提醒:要获取传递给函数的参数数量,能够在函数内应用
arguments.length
。
应用 Python 和 JavaScript 进行面向对象的编程
Python 和 JavaScript 均反对面向对象的编程,因而让咱们看看如何创立和应用此编程范例的次要元素。
类 Class
类定义的第一行在 Python 和 JavaScript 中十分类似。咱们编写关键字 class
,后跟该类的名称。
惟一的区别是:
- 在 Python 中,在类名之后,咱们写一个冒号(
:
) - 在 JavaScript 中,咱们用大括号(
{}
)突围了类的内容
???? 提醒:在 Python 和 JavaScript 中,类名应以大写字母结尾,每个单词也应以大写字母结尾。
构造函数和属性
构造函数是一种非凡的办法,当创立类的新实例(新对象)时会调用该办法,它的次要目标是初始化实例的属性。
- 在 Python 中,用于初始化新实例的构造函数称为
init
(带有两个前导下划线和尾部下划线)。创立类的实例以初始化其属性时,将主动调用此办法。其参数列表定义了创立实例必须传递的值,该列表以self
作为第一个参数结尾。 - 在 JavaScript 中,构造函数办法称为
constructor
函数,它也具备参数列表。
???? 提醒:在 Python 中,咱们应用
self
来援用实例,而在 JavaScript 中,咱们应用this
来援用实例。
要将值调配给 Python 中的属性,咱们应用以下语法:
self.attribute = value
相同,咱们在 JavaScript 中应用以下语法:
this.attribute = value;
Python 和 JavaScript 中的办法
在 Python 中,咱们应用 def
关键字定义方法,后跟它们的名称以及括号内的参数列表。此参数列表以 self
参数结尾,以援用正在调用该办法的实例。在此列表之后,咱们编写一个冒号(:
),并将该办法的主体缩进。
这是一个例子:
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;}
}
实例
要创立类的实例:
-
在 Python 中,咱们编写类的名称,并在括号内传递参数
my_circle = Circle(5, "Red")
-
在 JavaScript 中,咱们须要在类名之前增加
new
关键字。my_circle = new Circle(5, "Red");
总结
Python 和 JavaScript 是功能强大的语言,具备不同的理论应用程序。
Python 能够用于 web 开发和宽泛的应用程序,包含迷信用处。JavaScript 次要用于 web 开发 (前端和后端) 和挪动利用开发。
它们具备重要的差别,然而它们都有咱们编写弱小程序所需的雷同根本元素。
心愿你喜爱这篇文章并发现对你有所帮忙。当初你晓得了 Python 和 JavaScript 之间的次要区别。