習(xí)目標(biāo),了解Javascript起源:從哪里來,如何發(fā)展,現(xiàn)況。
內(nèi)容涉及Javascript與ECMAScript的關(guān)系、DOM、BOM、以及Ecma和W3C相關(guān)的標(biāo)準(zhǔn)。
1995年,網(wǎng)景公司一名叫BrendanEich的工程師為NetscapeNavigator2開發(fā)的叫Mocha(后來改名為L(zhǎng)iveScript)的腳本語言(它在服務(wù)器上叫做LiveWire)。
為趕上進(jìn)度,Netscape與Sun公司合作開發(fā)LiveScript并最終改名為JavaScript(為搭上當(dāng)時(shí)Java熱潮的順風(fēng)車)。
1997年JavaScript1.1作為提案提交給歐洲計(jì)算機(jī)制造商協(xié)會(huì)(Ecma),由第39技術(shù)委員會(huì)(T39)承擔(dān)了標(biāo)準(zhǔn)化JavaScript的任務(wù)(參見T39-ECMAScript),他們花了數(shù)月時(shí)間打造出ECMA-262,也就是ECMAScript這個(gè)新的腳本語言標(biāo)準(zhǔn)。
1998年,國(guó)際標(biāo)準(zhǔn)化組織(ISO)和國(guó)際電工委員會(huì)(IEC)也將ECMAScript采納為標(biāo)準(zhǔn)。
從此之后各家瀏覽器廠商都將ECMAScript作為自己JavaScript實(shí)現(xiàn)依據(jù),雖然各家都有各自的不同。
完整的JavaScript不限于ECMA-262所定義的那樣。它的結(jié)構(gòu)包含如下:
核心(ECMAScript):
它只是一準(zhǔn)腳本語言的規(guī)范標(biāo)準(zhǔn),本身并不局限于Web瀏覽器。
ECMA-262定義了語言的:語法、類型、語句、關(guān)鍵字、保留字、操作符和全局對(duì)象,它甚至沒有規(guī)定語言的輸入輸出。
和JavaScript一樣Adobe ActionScript同樣也實(shí)現(xiàn)了ECMAScript.
ECMAScript版本
2019年,ECMAScript發(fā)展到第10版。
文檔對(duì)象模型(DOM)
是一個(gè)應(yīng)用編程接口(API),用于在HTML中使用擴(kuò)展的XML。
DOM將整個(gè)頁面抽象為一組分層節(jié)點(diǎn)。HTML或XML頁面的每個(gè)組成部分都是一種節(jié)點(diǎn),包含不同的數(shù)據(jù)。
DOM通過創(chuàng)建表示文檔的樹,讓開發(fā)者可以隨心所欲地控制王爺?shù)膬?nèi)容和結(jié)構(gòu)。使用DOPMAPI 可以刪除、添加、替換、修改節(jié)點(diǎn)。
為保持Web的跨平臺(tái)性W3C開始了指定DOM標(biāo)準(zhǔn)的進(jìn)程。
瀏覽器對(duì)象模型(BOM)
使用BOM,開發(fā)者可以操控瀏覽器顯示頁面之外的部分。
BOM的問題在于他沒有制定相關(guān)標(biāo)準(zhǔn),而HTML5補(bǔ)足了這一點(diǎn),它以正是規(guī)范的形式涵蓋了盡可能多的BOM特性。
BOM主要針對(duì)瀏覽器窗口和子窗口(frame),人們把任何瀏覽器的擴(kuò)展都?xì)w在BOM的范疇。
頁的基石是內(nèi)容,而內(nèi)容在網(wǎng)頁上的呈現(xiàn)就必須依附于超文本標(biāo)記語言(HTML)。
在上一篇文章當(dāng)中,學(xué)記提到了超文本標(biāo)記語言發(fā)展至今,超文本標(biāo)記語言的版本已經(jīng)是HTML5了。
現(xiàn)在的網(wǎng)頁上有各種各樣的資源,除了常見的文字、圖片之外,還有影像資源與音頻資源。
影像與音頻不同于傳統(tǒng)的圖文資源,由于它們本身是動(dòng)態(tài)的,HTML5中的語句無法進(jìn)行完整的操作,這種時(shí)候就要用到 JAVAScript 來進(jìn)行嵌套網(wǎng)頁編程。
什么是 JAVAScript ?
JavaScript是一種高級(jí)的、解釋型的編程語言。
JavaScript支持面向?qū)ο缶幊?/strong>,命令式編程,以及函數(shù)式編程。
它提供語法來操控文本、數(shù)組、日期以及正則表達(dá)式等,不過,它不支持輸入輸出,比如網(wǎng)絡(luò)、存儲(chǔ)和圖形等,但這些都可以由它的宿主環(huán)境(網(wǎng)頁環(huán)境)提供支持。
JAVAScript已經(jīng)由ECMA(歐洲電腦制造商協(xié)會(huì))通過ECMAScript實(shí)現(xiàn)語言的標(biāo)準(zhǔn)化。它被世界上的絕大多數(shù)網(wǎng)站所使用,也被世界主流瀏覽器(Chrome、IE、Firefox、Safari、Opera)支持。
就像我們之前學(xué)習(xí)其他網(wǎng)絡(luò)技術(shù)時(shí)要了解它的歷史一樣,JAVAScript也不例外,了解一個(gè)技術(shù)發(fā)源的歷史,可以使我們更好的加以應(yīng)用。
起源
在網(wǎng)頁出現(xiàn)之后,各種網(wǎng)頁瀏覽器如雨后春筍一般遍地出現(xiàn)。在1993年,伊利諾伊大學(xué)厄巴納-尚佩恩分校的國(guó)家超級(jí)電腦應(yīng)用中心(NCSA)發(fā)表了NCSA Mosaic,這是最早流行的圖形網(wǎng)頁瀏覽器。
瀏覽器從字符的瀏覽轉(zhuǎn)到圖文瀏覽是一個(gè)巨大的進(jìn)步,在萬維網(wǎng)發(fā)展的初期,圖形瀏覽器可以很好的幫助大眾去熟悉萬維網(wǎng)。在一定意義上進(jìn)行了萬維網(wǎng)的推廣。
在 NCSA Mosaic 出現(xiàn)一年以后,一家名為Mosaic Communications的公司在美國(guó)加州成立,并雇用了許多來自 NCSA Mosaic 的開發(fā)人員用來開發(fā)Mosaic Netscape,以期取代 NCSA Mosaic成為世界第一的網(wǎng)頁瀏覽器。
很快,網(wǎng)頁瀏覽器 Mosaic Netscape 的第一個(gè)版本 Mosaic Netscape0.9于1994年底發(fā)布。在短短四個(gè)月內(nèi),就擊敗了NCSA Mosaic,占據(jù)了四分之三的瀏覽器市場(chǎng),并成為1990年代互聯(lián)網(wǎng)的主要網(wǎng)頁瀏覽器。
后來,為避免NCSA的商標(biāo)所有權(quán)問題,該瀏覽器于同年更名為 Netscape Navigator,該公司更名為Netscape Communications。(網(wǎng)景通信公司)
網(wǎng)景公司,預(yù)想到網(wǎng)頁會(huì)發(fā)展的更加生動(dòng)。公司的創(chuàng)始人馬克·安德森認(rèn)為HTML需要一種膠水語言,讓網(wǎng)頁設(shè)計(jì)師和兼職程序員可以很容易地使用它來組裝圖片和插件之類的組件,并且代碼可以直接編寫在網(wǎng)頁標(biāo)記中。
1995年,網(wǎng)景招募了布蘭登·艾克,目標(biāo)是把Scheme語言嵌入到Netscape Navigator瀏覽器當(dāng)中。但更早之前,網(wǎng)景已經(jīng)跟昇陽合作使Netscape Navigator中支持Java,這使得網(wǎng)景內(nèi)部產(chǎn)生激烈的爭(zhēng)論。
爭(zhēng)論的結(jié)果是網(wǎng)景決定發(fā)明一種與Java語法類似且搭配使用的輔助腳本語言,這個(gè)決策排除了采用現(xiàn)有語言的可能,例如Perl、Python、Tcl或Scheme。為了在其他競(jìng)爭(zhēng)提案中捍衛(wèi)JavaScript這個(gè)初始想法,公司需要有一個(gè)可以運(yùn)作的原型。艾克在1995年5月僅花了十天時(shí)間就把原型設(shè)計(jì)出來了。
此語言最初被命名為 Mocha,1995年9月在Netscape Navigator 2.0的Beta版中改名為LiveScript,同年12月,Netscape Navigator 2.0 Beta 3中被重命名為JavaScript。
至于為什么叫它JavaScript,是因?yàn)楫?dāng)時(shí)的網(wǎng)景公司與昇陽電腦公司組成的開發(fā)聯(lián)盟為了讓這門語言搭上Java這個(gè)編程語言“熱詞”(蹭Java的熱點(diǎn)),因此將其臨時(shí)改名為JavaScript。
這也是日后,Java 與 JavaScript 之間傻傻分不清的源頭。
JavaScript 的推廣帶給網(wǎng)景公司的不僅有成功還有煩惱。雖然在瀏覽器上大獲成功,但與此同時(shí)微軟也開發(fā)出了JScript,與網(wǎng)景公司同臺(tái)競(jìng)技。
JScript也是一種JavaScript的語言形式,這兩個(gè)JavaScript語言版本在瀏覽器端共存意味著語言標(biāo)準(zhǔn)化的缺失,標(biāo)準(zhǔn)的缺失意味著市場(chǎng)的混亂,因此在當(dāng)時(shí),有很多網(wǎng)頁在兩種瀏覽器上只能在其中一種瀏覽器上完美顯示,而在另一種瀏覽器就會(huì)出現(xiàn)亂碼之類的顯示問題。
直到1996年11月,網(wǎng)景正式向ECMA(歐洲計(jì)算機(jī)制造商協(xié)會(huì))提交語言標(biāo)準(zhǔn)。1997年6月,ECMA以JavaScript語言為基礎(chǔ)制定了ECMAScript標(biāo)準(zhǔn)規(guī)范ECMA-262。
盡管JavaScript是非程序員使用的腳本語言,但現(xiàn)在卻是很多程序員掌握的語言之一,可以說是意料之外的發(fā)展了。
如果想學(xué)習(xí)更多科技知識(shí),可以點(diǎn)擊關(guān)注。
如果對(duì)文章中的內(nèi)容有什么困惑的地方,可以在評(píng)論區(qū)提出自己的問題,學(xué)記同大家一起交流,解決各種問題,一起進(jìn)步。
青年學(xué)記 陪伴著各位青年
作者:青年學(xué)記 一名不斷進(jìn)步的程序猿
一起學(xué)習(xí) 一起進(jìn)步
走向自立
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。