java我不太懂,c++稍微好一些,python比较熟悉,刚刚开始看JavaScript。
js最主要的两个关键字:function和var
类型在js中并不是主要的,这一点与python类似,都没有明确的类型定义,python中变量随用随取,js中最好需要用var定义一下。
js中的function与python也很类似,都是对象,都有对象的属性,只是js具有prototype,python拥有的是__dict__。
js是从java中继承过来的,语法与java接近,自然也与鼻祖C++有些类似,都采用{}来表示语句块,都用;来表示语句结束(无;结束的回车自动添加;,这一点与java差别较大),也采用>>>来表示无符号右移。应该说,表达式,语法结构,运算符与java,C++基本上是一样的。
js没有类的概念,python,java,c++都有。js通过prototype来模拟类,通过function返回一个类,这个与python的meta有些类似。
js类对象可以通过类似python的字典初始化,字典的key用来作为属性,value作为属性值,这一点与python的dict是类似,如果深入分析,这应该是python与js底层最为接近的地方。
js的lambda函数是通过f = function(x) {return x;}来实现的,python的lambda则直接通过 f = lambda x : x 来实现的。都具有匿名申明函数的功能。
js中对象的属性可以通过for var i in object来进行处理,与python的for i in dict.key()类似,都是一个对象的遍历。
js中也有with语句,python26也引入了with语句,不过js中的with语句功能上还有些缺陷。
把js的function对象或者js对象看做是python的dict,更容易理解一些。
js的数组与python类似,js的string也具有join和split方法,所获取得到的结果也是类似的。 当然,切片操作没有python那么优雅,还是需要slice函数调用的
可以那么认为,js是介于java与python之间的一门语言,具有java的语法结构和python的脚本性。
披着java的外皮,干着python的勾当。