Python和JavaScript之间的语义有多大不同?
这两种语言似乎与我极为相似。尽管Python支持实际类而不是基于原型的类,但在Python中,类与生成包含值和函数的对象的函数并没有太大区别,就像在JavaScript中一样。另一方面,JavaScript只支持将浮点数和字符串作为内置数据类型Python和JavaScript之间的语义有多大不同?,javascript,python,semantics,Javascript,Python,Semantics,这两种语言似乎与我极为相似。尽管Python支持实际类而不是基于原型的类,但在Python中,类与生成包含值和函数的对象的函数并没有太大区别,就像在JavaScript中一样。另一方面,JavaScript只支持将浮点数和字符串作为内置数据类型 对我来说,这些差别似乎相当肤浅,所以抛开这些不谈,它们之间还有什么更重要的差别呢?在Python中,空格是语言的一部分。在Javascript中,大括号定义代码块,空格被忽略。此外,Python还为JavaAPI、.net和其他非常棒的库提供了绑定。与P
对我来说,这些差别似乎相当肤浅,所以抛开这些不谈,它们之间还有什么更重要的差别呢?在Python中,空格是语言的一部分。在Javascript中,大括号定义代码块,空格被忽略。此外,Python还为JavaAPI、.net和其他非常棒的库提供了绑定。与Python相比,Javascript在图书馆部门非常有限,但它有一些整洁的窗口库等等。作为一名Javascript开发人员,我做了一些Python的工作(感谢Google App Engine),我想说Javascript和Python之间的两个主要区别是
- 格式化。JavaScript不关心代码的外观(想想所有的代码最小化和结果是什么样子的)
- Unicode支持。JavaScript一直都是unicode,GAE的Python2.5并没有这么多(默认字符集是拉丁文1)。因此,如果你不确定自己在做什么,那么需要支持非拉丁字符可能是一个真正的难题
var
关键字,ECMAScript中没有隐式全局变量,两者都是词汇范围switch
语句,但我们鼓励您以这种方式使用字典,有时它可以方便地将属性分配给lambda并执行它们yield
语句,也没有let
表达式/语句,也没有array comprehension
s-但是这些都包含在Mozilla的非标准JS中raise
vsthrow
,除了vscatch
(Python,JS)
和
、是
和不是
等关键字运算符i++
对象继承的原型属性。prototype
new
操作符来创建对象我从键入中窃取了一些信息:Javascript和Python都是动态键入的,而Javascript是弱的,Python是强类型的。在Python中,“self”显式传递给成员函数,不是特殊的关键字或任何东西。
在javascript中,“this”是动态限定范围的。您可以通过对成员函数调用apply()来调整其作用域。我将添加一些我尚未提到的内容:
- JavaScript支持对象文字表示法。Python的工作方式并不完全相同,但Python字典类似于JavaScript关联数组李>
- JavaScript对象/数组支持这一很酷的功能,在创建新对象时不需要引用(单个单词)字符串: var foo={bar:“baz”}
- 除了大括号符号外,还可以使用点符号访问JavaScript中的关联数组键。也就是说,这些是相同的: foo.bar//返回“baz” foo[“bar”];//返回“baz”
- Python的匿名函数(
)语法不如JavaScript的匿名函数灵活lambda
- Python有一个标准库之类的东西。(是的,我知道Rhino等人的情况,但是他们提供的库不是标准的。我知道没有标准的方法来读取JavaScript文件。)
- 您可以在浏览器中运行JavaScript。python没有那么多李>
语法上的
和一般的形态上的差异,而不是问题中提到的语义上的
差异。Javascript也有java绑定和.net绑定。这取决于你用的是什么口译员。如果你在firefox中编写JAVA脚本,你甚至可以直接调用JAVA并制作swing应用程序。甚至不需要任何特殊特权,除非你想做一些奇怪的事情,比如文件i/o:P,当涉及JavaScript时,我们几乎总是在谈论“IE6”。真的吗?“我们”到底是谁?说这话真奇怪。在任何情况下,如果你想在IE6中使用chrome frame,或者Jscript.NET+silverlightWe,就像大多数JavaScript用户一样,他们必须支持一个完全不同的用户群,而有些用户在锁定的系统中,chrome frame和silverlight根本不可能实现。任何一个有商业顾虑的人几乎总是为最大的共同点而写,而使用JavaScript,这一点就非常低了。这种GCD通常不会在Python中出现。对于#8,实际上Mozilla JavaScript支持所有这些功能。是的,我知道这一点,但我正在快速进行编辑,并决定说一些,以防我不小心添加了Python特有的功能。。。我会更新的。在Py2.6中已过时(非本地
关键字)