整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

一文读懂 JavaScript 和 Python 九大语义区别

者 | Ruqayyah Sara

译者 | 弯月,责编 | 伍杏玲

出品 | CSDN(ID:CSDNnews)

我是一名全栈开发。前几天我一直在研究算法和数据结构,因为对于程序员而言,最重要能力的就是解决问题,所有任何程序员都应该拥有强大的解决问题的基础能力。

两天前我开始学习Python,开始对这门语言有了更多的理解。我开始将其与JavaScript进行比较,因为JavaScript是我日常工作中使用的语言。

JavaScript和Python是两门非常重要的语言。尽管包括我在内的许多人都知道Python或JavaScript,但我们并不清楚两种语言之间的重要区别。

我注意到这两门年语言有许多语义上的区别,相信理解这些区别对我和对其他人都有很大帮助。在本文中,我会比较我在两门语言中遇到的一些基础概念。所以,如果你熟悉JavaScript或Python,想了解二者的差异,那么你就来对地方了!

注释

JavaScript

使用双斜线(//)作为单行注释,/* */ 作为多行注释。

Python

使用 # 作为单行注释,使用三引号""" """ 作为多行注释。

代码块

JavaScript

JavaScript中的每个代码块都必须放在花括号({})中,每条语句必须使用分号 ; 结束。

var a = 2;
if(a>0){
console.log("Positive");
}
else{
console.log("Negative");
}

Python

Python中的代码块使用缩进表示。它不使用花括号或圆括号,而是使用空白。每条语句都需要换行。

a = 2

if a>0:

print("Positive")

else:

print("negative")

print("does not belong to else block")

数据类型

我无法在本文中完整地讨论JavaScript和Python之间的数据类型差异,这里我们只讨论主要的差异。

基本数据类型

  • 上面的表格展示了JavaScript和Python的基本数据类型。JavaScript中的Number类型表示Int和float值,由编译器在运行时确定。而JavaScript(ES10)中的BigInt用于存储大整数,而Python使用Int表示所有尺寸的整数。

  • JS使用关键字表示空值,Python使用None。

  • Python没有undefined和symbol的概念,这些是JavaScript特有的。

  • Python有一种特殊的数据类型——complex,用于表示复数 x + yj,其中x是实部,y是虚部。

a=3+4j
print(a.real) #3
print(a.imag) #4

非基本数据类型

  • 上图展示了复杂的(或者叫做非基本)数据类型。Python中的列表能存储任何数据类型,与JavaScript一样。

  • 但是Python中的数组可以使用库(如NumPy,array)来定义。Python中的数组只能包含统一数据类型。Python中的列表和数组有很大区别。数组上可以执行多种数学操作,而列表不能。

  • JavaScript中的对象类似于Python中的字典。两者都包含键值对。但对象是JavaScript中的基本组成部分,而字典在Python中只不过是个数据容器。

  • Python中的元组是一个不可修改的列表。用元组表示的列表无法被重新定义。而JavaScript没有这个概念。

  • 因此,Python拥有内置的哈希表(字典),而JavaScript没有内置的哈希表、方法或库。

变量定义

JavaScript

在JavaScript中定义变量需要使用三种主要的关键字:var,let和const。定义方法决定了变量的使用方式(以及作用域)。

Python

Python中定义变量不需要使用关键字,只需要给变量名直接赋值即可:

a = 3
print (a) # 3

If-Else

JavaScript

JavaScript中的条件语句是 if、else if、else还有switch。

Python

Python中的条件语句是if、elif和else。

elif是else-if的缩写。Python没有switch语句。相反,可以用字典来代替。

三元运算符

JavaScript

JavaScript的三元运算符(?:)是一个条件运算符,语法为(condition)?(expresssionIfTrue):(expressionIfFalse):

var age = 26;
var beverage = (age >= 21) ? "Beer" : "Juice";
console.log(beverage); // "Beer"

Python

Python中的三元运算符的语法是 (expressionIfTrue) if (condition) else (expressionIfFalse)

a, b = 10, 20

min = a if a < b else b

print(min)

全等运算符

JavaScript

全等运算符(===)也叫“严格相等运算符”,会比较两个运算数并检查其相等性,而不会进行类型转换,也就是说,它会检查运算数的数据类型。返回值为布尔。JavaScript只有一个全等运算符。

var a=3,b="3";
console.log(a==b); // true
console.log(a===b); // false

Python

Python有两个全等运算符:is 和 is not。

is 运算符会测试两个运算数是否为同一个对象,is not为is的反面。

x = 5

if (type(x) is int):

print ("true") # true

if ( type(x) is not int):

print ("true")

成员运算符

JavaScript

成员运算符检查对象中的特定属性。JavaScript只有一个成员运算符:in。

const user= {name: 'Sara', age: 19, sex: "female"};
console.log('name' in car);
// output: true

Python

成员运算符用于验证某个值是否为成员。Python有两个成员运算符:in和not in。

x = 24

y = 20

list = [10, 20, 30, 40, 50 ]

if ( x not in list ):

print ("not present") # Output:True

循环

JavaScript

JavaScript有三种循环:

  • 入口控制循环:for和while(在执行循环语句之前测试条件)

  • 出口控制循环:do-while(执行循环语句之后测试条件)

// for loop
var c = ["red", "green", "blue", "purple"];
for (var i = 0; i<4; i++){
console.log(c[i]);
}
// prints array// while
var c = ["red", "green", "blue", "purple"];
while(i<4){
console.log(c[i]);
i++;
} // prints array

Python

Python有两种循环:for和while。Python没有内置的do-while循环。

Python的while循环与JavaScript的for循环类似。例如下面的例子:

c = ["red", "green", "blue", "purple"]
i = 0
while i<4:
print(c[i])
i += 1 # i++ is invalid

Python不支持++和--运算符。我们需要使用x+=1和x-=1。

for循环用来遍历序列(列表、数组和元组)。它使用in操作符和range函数进行迭代。可以用range生成一系列数字,该函数接受三个参数:start,stop和step。

  • start:开始的位置(可选)。默认为0。

  • stop:结束的位置(必须指定)。

  • step:指定序列中两个数字之间的间隔(可选)。

x = range(5)
for n in x:
print(n) # 1,2,3,4x = range(3,9)
for n in x:
print(n) # 3,4,5,6,7,8x = range(2,20,2)
for n in x:
print(n) # 2,4,6,8,10,12,14,16,18

以上就是我注意到的最基本的JavaScript和Python之间的语义区别。

原文链接:https://medium.com/better-programming/semantic-differences-between-javascript-and-python-ed21b1f3ce50

本文为 CSDN 翻译,转载请注明来源出处。

整理 | 苏宓
出品 | CSDN(ID:CSDNnews)

近日,来自多伦多大学和 YScope 公司(为软件系统提供创新的日志管理和故障排除工具。由一群计算机工程教授和博士创立)的 David Lion、多伦多大学 Adrian Chiu 和 Michael Stumm、多伦多大学和 YScope 公司 Ding Yuan 共同发布了一份《调查托管语言的运行时性能:为什么 JavaScript 和 Python 比 C++ 慢了 8 倍和 29 倍,而 Java 和 Go 却能更快》(https://www.usenix.org/system/files/atc22-lion.pdf)的论文分析报告,深度剖析了不同编程语言运行时在代码开发中真实的性能情况,由此方便开发者可以精确地测量执行任何字节码指令所花费的时间等。


性能是系统软件不得不面对的挑战


在报告中,研究人员指出,自 2015 年以来,具有集成运行时环境的编程语言越来越受欢迎,其中,全球知名的代码托管平台 GitHub 上最受欢迎的三种语言分别是 JavaScript、Java 和 Python。

作为开发利器,编程语言帮助开发者快速构建各种应用程序和服务,也极大地提高了生产力。同时,这些语言自身也提供了各种功能,如动态类型检查、带有垃圾收集的内存管理,以及动态内存安全检查等等。为此,研究人员用「托管语言」(managed languages)专业术语来指代这些类型的编程语言。

现实来看,托管语言越来越多地被用于实现性能至关重要的系统软件上,如Hadoop 和 Spark 都在 Java 虚拟机(JVM)上运行,因为它们分别用 Java 和 Scala 实现;Kubernetes、etcd(分布式键值存储)和 M3(由 Uber 建立的分布式时间序列数据库和查询引擎)都是用 Go 实现的。

当前,甚至连操作系统(OS)的内核 Biscuit 也是用 Go 实现的 。Openstack、Paypal、Instagram 和 Dropbox 都大量使用 Python,其中,Python 是 Dropbox "在后台服务和桌面客户端应用中使用最广泛的语言",在一个存储库中就有近 400 万行 Python 代码;JavaScript 也被用于 Facebook 的 Bladerunner pub/sub 系统的性能关键路径中。

在开发过程中编程的性能在一开始很少会被考虑到项目中部分原因是不少开发者认为性能问题可以在以后慢慢去解决,也许可以通过简单地增加硬件来进行横向扩展

不过,随着代码品或服务使用规模的扩大,服务变得越来越慢或者硬件成本变高,性成为一个不容忽视的问题这也是为什么 Stream 要放弃了 Python 而改用 Go、 Discord 从 Go 切换到 Rust、Twitter 从 Ruby on Rails 切换到 Scala 和 Java 的主要原因。

不少开发者往往为了提升性能,想破脑袋,但现实只有两条路,一条是从现有的代码中想尽办法尽可能地做优化,另一条是思考使用的编程语言是否已经达到了性能极限,看看有没有必要将旧的代码移植到一个新的性能更高的语言上。

为了彻底解开系统软件中不同编程语言导致的性能问题,研究人员决定以 C++ 为极限,对 Java、Go、JavaScript Python 四种编程,还有应用最广泛的运行时系CPython、OpenJDK。Node.js 与 JavaScript 的 V8 引擎行深入的定量性能分析。

同时,研究人员还从头开始建立了 6 个应用程序,并创建了一个名为

 Python和JavaScript是两种流行的编程语言,具有不同的特性。

  但是,在学习之前,你必须对JavaScript和Python有完整的了解。在本文中,我们将向你介绍这两种编程语言的知识。

  Python是什么?

  Python是一种通用的面向对象的计算机编程语言。它是一种注重代码可读性的高级编程语言;因此,它易于阅读和实现。如果你是初学者,你需要从这种基础编程语言开始学习编码。它是一种支持多种编程风格的脚本语言。

  JavaScript是什么?

  另一方面,Java Script是一种在应用程序的前端和后端工作的计算机编程语言。这种编程语言主要用于客户端脚本和服务器端。它也是一种易于开始学习的编程语言,它提供了一个强大的测试工作流程。

  Python和JavaScript的详细比较

  哈希表

  哈希表是用于多种用途的索引结构,例如删除操作、搜索和插入。Python 编程语言具有内置的哈希表,称为“字典”。虽然JavaScript没有内置的哈希表结构,但它利用了另一种方式来实现功能。

  

  数据类型

  数据通常分为两类:可变的和不可变的。可变数据类型能够在赋值或创建时改变值;另一方面,不可变数据类型不会改变值。JavaScript在可变和不可变数据类型之间没有明显的区别,但是Python支持这两种数据类型。例如,列表属于不可变数据类型,而集合属于可变数据类型。

  句法

  JavaScript中的语法是原生类型的,不像Python那样易读。另一方面,Python使用小而简洁的语法,这有助于轻松学习。

  

  对象访问

  在JavaScript和Python中,访问对象涉及不同的方法。Python使用“self”关键字,而JavaScript使用“this”方法。这就是为什么Python编程语言访问对象的第一个参数总是自参数。

  代码块

  代码块帮助编码、调试和运行。在JavaScript中,代码块是花括号,而缩进是Python编程语言的代码块。此外,JavaScript使用分号,Python使用换行符。

  隐式数据转换

  JavaScript是一种反映隐式数据转换的弱类型编程语言。Python支持字符串和动态类型样式。动态风格是一种可以根据任务改变类型的风格。

  JavaScript的应用

  JavaScript和Python都有特定的属性,允许我们在多个应用程序中使用它们。以下是JavaScript的应用:

  服务器端技术(例如;Express.js,MongoDB,Node.js)

  构建安全的应用程序

  移动应用程序开发

  前端技术(例如;jQuery,ReactJS)

  动态spa(单页应用程序)

  想要了解JavaScript的更多知识,可以参加web前端培训,课程实时更新,紧跟企业需求,让你轻松找到工作。

  

  Python的应用

  Python的应用列表是巨大的。以下是最受欢迎的:

  机器学习

  GUI应用程序

  XML处理

  人工智能语言

  科学应用

  临时编程

  数据库应用

  原型化Web脚本

  应该先学哪种语言?

  决定学习编程语言的顺序最好由使用目的来定义。如果你是编码初学者,Python更容易学。然而,如果你想学习前端编程语言,那么JavaScript是一个更好的选择。

  现在你们都知道了这两种编程语言之间的区别点。这两种编程语言在计算机科学和编码领域都有重要意义。使用哪种编程语言取决于任务的要求。JavaScript主要是服务器端脚本语言,而Python是客户端脚本语言。