原因是:1、Js運算子與Python中的相似;2、Js資料類型與Python中的相似;3、Js與Python的原生語法對迭代器和生成器的支援;4、 Js中的Proxy和Reflection與Python中透過「__xxx__」重寫運算子。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
首先,JavaScript本身就是一個借鑒了很多其它語言的雜糅體,JavaScript的創始人Brendan Eich曾戲稱」它是C語言和Self語言一夜情的產物。「。其次,隨著現代程式語言的發展,趨同肯定是一個趨勢,畢竟「完善的語言總是相似的,不完善的語言各有各的不完善。」
但是,應該說JavaScript與Python在實作機制上有本質的不同,譬如前者是藉鏡Self語言基於原型(Prototype)的,而後者是基於類別(Class)的。我想題主之所以覺得JavaScript正在變得越來越像Python,主要是感覺兩者都提供了許多相似的“語法糖”,比如:
(1)(JavaScript中的.. .運算子) 與(Python中的*和**運算子)
(2)(JavaScript中的Set和Map資料型別)與(Python中的Set和Dictionary資料型別)
(3)JavaScript與Python的原生語法對迭代器和生成器的支援
(4)(JavaScript中的Proxy和Reflection) 與(Python中透過__xxx__重寫運算子)
等等諸如此類,特別是ES2015之後新增的一些語法特性,確實讓人感覺很多都藉鑒自Python。但也可以說,一門成熟的、完善的腳本語言最終都會提供這些語言特性,不一定是誰學誰,而可能是在開發需求和開發理念的推動下自發的趨同,就像鳥類和蝙蝠各自進化出了翅膀──這在生物學上叫做趨同演化。
再來說既然「完善的語言總是相似的“,那為什麼不統一成同一種語言的問題。我覺得這跟語言生態有很大關係,一些語言在發展的過程中在某一領域積累了大量的第三方庫和問題解決方案,漸漸出現馬太效應,使得在解決該領域的問題時有的語言只需要引入庫函數,有的語言則要連篇累牘地寫很長的程式碼。
沙漠不是不可以變成綠洲,只是一件事的可行性不僅要考慮自然法則的可行性還要考慮經濟成本的可行性。以前端為例,如果在前端使用Python,那很多前端函式庫要再寫一次、很多部落格要再寫一次。去MDN看看JavaScript提供的前端API的數量、去CSDN看看相關部落格的數量,就知道其工程之浩繁。雖然現在推出了WebAssembly,讓其它語言也可以在瀏覽器上運行,但是依然要呼叫JavaScript的API。
自然演化出來的多元,看似混亂,卻往往好於人類構想出來的統一。
【推薦學習:javascript高階教學】
#以上是Python為什麼像JavaScript的詳細內容。更多資訊請關注PHP中文網其他相關文章!