語(yǔ)言的性質(zhì)(The nature of the language)

2018-06-15 16:27 更新

本節(jié)對(duì)JavaScript的性質(zhì)做簡(jiǎn)要介紹,以幫你理解一些疑問(wèn)。

JavaScript 和 ECMAScript(JavaScript versus ECMAScript)

編程語(yǔ)言稱為JavaScript,語(yǔ)言標(biāo)準(zhǔn)被稱為ECMAScript。他們有不同名字的原因是因?yàn)椤癑ava”已經(jīng)被注冊(cè)為商標(biāo)(屬于Oracle)。目前,只有Mozilla被正式允許使用“JavaScript”名稱,因?yàn)楹芫靡郧八麄兊玫揭环菰S可。因此,開(kāi)放的語(yǔ)言標(biāo)準(zhǔn)擁有不同的名字。當(dāng)前的JavaScript版本是ECMAScript 5,ECMAScript 6當(dāng)前是開(kāi)發(fā)版

影響(Influences)

  • JavaScript之父,Brendan Eich 別無(wú)選擇必須迅速創(chuàng)建一門語(yǔ)言。(否則,會(huì)更糟糕,Netscape將使用其他技術(shù))。他借鑒了幾門其他語(yǔ)言:
  • JavaScript借鑒了Java的語(yǔ)法和如何區(qū)分原始值和對(duì)象。
  • JavaScript的函數(shù)設(shè)計(jì)受Scheme和AWK的啟發(fā)——他們(的函數(shù))都是第一類(first-class)對(duì)象,并且在語(yǔ)言中廣泛使用。閉包使他們(函數(shù))變成強(qiáng)大的工具。
  • Self影響了JavaScript獨(dú)一無(wú)二的面向?qū)ο缶幊?OOP)風(fēng)格。它的核心思想(在這里我們沒(méi)有提到)非常優(yōu)雅,基于此創(chuàng)建的語(yǔ)言非常少。但后面會(huì)提到一個(gè)簡(jiǎn)單的模式照顧大部分用例。JavaScript面向?qū)ο缶幊痰臍⑹旨?jí)特性是你可以直接創(chuàng)建對(duì)象。不需要先創(chuàng)建類或其他類似的東西。
  • Perl和Python影響了JavaScript字符串,數(shù)組和正則表達(dá)式的操作。

JavaScript直到ECMAScript 3才加入異常處理,這解釋了為什么這門語(yǔ)言經(jīng)常自動(dòng)轉(zhuǎn)換類型和經(jīng)常靜默失?。鹤畛鯖](méi)有拋出異常的功能。 一方面,JavaScript有很多怪癖,并且缺失很多功能(塊級(jí)變量作用域(block-sciped variables),模塊(modules)支持子類型(subtyping)等)。另一方面,它有幾個(gè)非常強(qiáng)大的特性,允許你彌補(bǔ)上面的問(wèn)題。在其他語(yǔ)言中,你要學(xué)習(xí)語(yǔ)言特性。在JavaScript中,你需要經(jīng)常學(xué)習(xí)模式代替。

深入閱讀(Further reading)

JavaScript: how it all began JavaScript: the glass is half full?[什么讓JavaScript如此吸引人?] ECMAScript: ES.next versus ES 6 versus ES Harmony?[包括ECMAScript版本的一個(gè)簡(jiǎn)史] Perl and Python influences in JavaScript Javascript:10天設(shè)計(jì)一門語(yǔ)言

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)