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的勾當。