Javascript誕生于1995年,當時網景希望可以在客戶端完成一些基本的驗證任務踢涌。因為當時絕大多數互聯網用戶使用速度僅為28.8kb/s的調制解調器(貓)上網,當用戶填寫一個表單泌豆,然后等待30秒鐘值戳,最終服務器返回消息說有一個必填字段沒有填。
于是愈腾,網景決定在1995年2月發(fā)布的第二版網景瀏覽器中開發(fā)一種名為LiveScript的腳本語言憋活。發(fā)布前夕,網景公司臨時將名字改為與當時被科技媒體炒得比較熱的java扯上關系虱黄,于是將名字改為javascript悦即,這個版本也就是javascript 1.0。
看完我寫瀏覽器專題的小伙伴橱乱,記不記得1995年辜梳,微軟正式獲得了Mosaic的技術授權,開始向與網景競爭的自己產品IE瀏覽器中投入更多的資源泳叠。在IE3中加入了名為JScript作瞄。
javascript與JScript并立的局面,必然會導致網頁兼容性的問題危纫,標準化也逐漸提上了日程宗挥。
1997年节预,以javascript1.1(網景3中)為藍本被提交給了ECMA(歐洲計算機制造商協會),該協會指定T39属韧,負責標準化這一腳本語言,要求:通用蛤吓、跨平臺宵喂、供應商中立。
數月后会傲,T39努力完成了ECMA-262(標準名)——定義一種名為ECMAScript(語言名)的新腳本語言標準锅棕。
雖然javascript與ECMAScript通常被人們用來表達相同的含義,但是javascript的含義卻比ECMA-262中規(guī)定的多的多淌山。
一個完整的javascript由下列三個不同的部分組成:
- 核心:ECMAScript
- 文檔對象模型:DOM
- 瀏覽器對象模型:BOM
理解一下裸燎,一個運行在瀏覽器端的腳本語言,需要與瀏覽器對象溝通泼疑,了解瀏覽器的版本德绿,控制瀏覽器的窗口,還有一些緩存的設置退渗。同時也需要根據程序員編寫的html文檔內容移稳,獲取用戶提交的數據,動態(tài)改變html文檔內容会油。
ECMA-262定義的只是這門語言的基礎个粱,而在此基礎之上可以構建更完善的腳本語言。
ECMAScript的宿主環(huán)境并不是只有web瀏覽器翻翩,其他宿主環(huán)境還包括Node(一種服務端的javascript平臺都许,我還不是很了解,但看到招聘信息里面也會經常出現要求會使用nodejs)嫂冻、Adobe Flash胶征。
DOM
文檔對象模型,是針對XML但經過擴展用于HTML的應用程序編程接口(API)絮吵。DOM將整個頁面映射為一個多層節(jié)點結構弧烤。開發(fā)人員借助DOM獲得了控制頁面內容以及結構的主動權。
DOM于1998年成為W3C的推薦標準蹬敲,注意dom并不是指針對javascript暇昂,很多其他語言也讀實現了DOM,例如SVG伴嗡、MathML急波、SMIL(沒聽過啊)
BOM
瀏覽器對象模型瘪校,但是他不像DOM是W3C的推薦標準澄暮,BOM沒有標準可循名段,因此每個瀏覽器都有自己的實現。雖然泣懊,也存在一些事實標準伸辟,例如要有window對象與navigator對象等,但是每個瀏覽器都會為這兩個對象乃至其他對象定義自己的屬性和方法馍刮。HTML5的出現信夫,使得BOM的實現細節(jié)有望朝著兼容性越來越高的方向發(fā)展。
以上內容是JAvaScript高級程序設計第一節(jié)javascript簡介中的部分內容卡啰。