Ste*_*eve 24 javascript python semantics
这两种语言似乎与我非常相似.尽管Python支持实际的类而不是基于原型的类,但Python类与生成包含值和函数的对象的函数没有什么不同,就像在JavaScript中一样.另一方面,JavaScript仅支持浮点数和字符串作为内置数据类型.
这对我来说似乎是相当浅薄的差异,所以除了这些之外,它们之间有什么更重要的区别?
med*_*iev 34
varPython中没有关键字,ECMAScript中的隐式全局变量,都是词法范围的undefined在Python中没有,会抛出异常switch在Python中没有语句,而是鼓励你以这种方式使用字典,有时它方便地为lambda指定属性并执行它们yield语句,也没有let表达式/语句,也没有array comprehension- 但是这些都包含在Mozilla的JS中,这是非标准的raisevs throw,exceptvs catch(Python,JS)and,is和not,在Python中使用i++Object.prototype new在Python中使用运算符来创建对象我从http://hg.toolness.com/python-for-js-programmers/raw-file/tip/PythonForJsProgrammers.html窃取了大量信息.
在python中,“ self”被显式传递给成员函数,而不是特殊关键字或其他任何东西。在javascript中,“ this”是动态范围的。您可以通过在其上调用apply()来弄乱成员函数的范围。
我将添加一些尚未提及的内容:
JavaScript对象/数组支持这一很酷的功能,您在创建新对象时无需引用(单字)字符串:
var foo = {bar:“ baz”};
除了括号符号外,还可以使用点符号来访问JavaScript中的关联数组键。也就是说,它们是相同的:
foo.bar; //返回“ baz”
foo [“ bar”]; //返回“ baz”
Python的匿名函数(lambda)语法不如JavaScript的匿名函数灵活。