JavaScript是什么画髓?它的作用是什么掘剪?

理解JavaScript使用語(yǔ)言中最棘手的部分的過(guò)程是很重要的。讓我們從這一切開始奈虾。

為什么需要

JavaScript這樣的語(yǔ)言夺谁?

許多年前,早在1995年愚墓,就有一個(gè)名為Netscape Navigator的瀏覽器(聽起來(lái)已經(jīng)是個(gè)故事了)予权“好悖互聯(lián)網(wǎng)連接非常緩慢浪册,因?yàn)槿藗冞^(guò)去使用撥號(hào)連接使用電話線和調(diào)制解調(diào)器。因此岗照,當(dāng)您要在網(wǎng)站上填寫表單時(shí)村象,通常使用Perl這樣的語(yǔ)言進(jìn)行編碼,任何表單的輸入字段的驗(yàn)證都需要往返到服務(wù)器攒至。

這不僅是一個(gè)痛苦的練習(xí)厚者,因?yàn)榛ヂ?lián)網(wǎng)的速度非常緩慢,而且還導(dǎo)致數(shù)據(jù)丟失迫吐,如果表格沒(méi)有正確填寫库菲。Netscape Navigator試圖通過(guò)找到一種方法來(lái)驗(yàn)證客戶端本身的輸入字段,從而將完整的輸入字段保存到服務(wù)器上志膀,從而解決這個(gè)問(wèn)題熙宇。JavaScript就是這樣誕生的,只是作為一種腳本語(yǔ)言在客戶端驗(yàn)證表單溉浙。

為什么了解JavaScript的歷史很重要

JavaScript作為一種腳本語(yǔ)言誕生了烫止,用來(lái)驗(yàn)證輸入,它已經(jīng)走過(guò)了成為一種成熟的編程語(yǔ)言的旅程戳稽,它可以用來(lái)構(gòu)建從移動(dòng)應(yīng)用程序馆蠕、web應(yīng)用程序到甚至桌面應(yīng)用程序的任何東西。由于它的發(fā)展方式,我想說(shuō)它是一種編程語(yǔ)言互躬,它可能需要幾個(gè)小時(shí)的時(shí)間才能開始播赁,但需要多年的時(shí)間才能掌握。因此吼渡,當(dāng)您開始學(xué)習(xí)JavaScript時(shí)行拢,了解它的歷史將有助于您更好地理解它的本質(zhì)、優(yōu)點(diǎn)和局限性诞吱。一旦了解JavaScript是如何演變成一種語(yǔ)言的舟奠,就更容易理解為什么會(huì)存在一些繼承的問(wèn)題,以及為什么有些事情會(huì)以某種方式發(fā)生變化房维。

JavaScript的誕生與沖突的產(chǎn)生

BrendanEich(當(dāng)時(shí)是Netscape Navigator的開發(fā)人員)被指派開發(fā)這種新的腳本語(yǔ)言沼瘫,然后命名為Mocha。這將作為Netscape Navigator 2的一部分發(fā)布咙俩。Mocha后來(lái)在Netscape Navigator 2發(fā)布之前被重命名為L(zhǎng)iveScript耿戚。Netscape通信公司隨后與Sun Microsystems結(jié)成聯(lián)盟,后者當(dāng)時(shí)正在大力推動(dòng)Java的發(fā)展阿趁。

Just before the launch LiveScript was renamedasJavaScripttobank upon the traction that Java was gettingfromthe pressandportray JavaScriptasa natural extensionofJava.

因?yàn)镴ava對(duì)于處理服務(wù)器端任務(wù)來(lái)說(shuō)太復(fù)雜了膜蛔,太大了,LiveScript被看作是Java處理客戶端任務(wù)的自然擴(kuò)展脖阵。這應(yīng)該是Java的一個(gè)伙伴皂股,Java將處理繁重的服務(wù)器端任務(wù),而LiveScript將使客戶端驗(yàn)證變得容易命黔。由于這些明顯的原因呜呐,LiveScript繼承了Java的許多語(yǔ)法和特性矾兜。Sun Microsystems幫助Netscape Navigator 2完成并發(fā)布了LiveScript培漏,就在發(fā)布之前,它被重新命名為JavaScript浇冰,以利用Java從媒體獲得的牽引力坠宴,并將JavaScript描述為Java的自然擴(kuò)展洋魂。

沖突的演變與瀏覽器不兼容

JavaScript1.0是一個(gè)巨大的成功,互聯(lián)網(wǎng)的采用也在大幅增加喜鼓。因此JavaScript1.1與Netscape Navigator 3一起發(fā)布副砍。到目前為止,Netscape Navigator已經(jīng)成為市場(chǎng)上領(lǐng)先的瀏覽器颠通。此時(shí)址晕,微軟決定在自己的瀏覽器InternetExplorer 3的開發(fā)中注入更多的資源。Netscape Navigator 3推出后不久顿锰,Microsft發(fā)布了一個(gè)新版本的Web瀏覽器谨垃,名為InternetExplorer 3启搂,實(shí)現(xiàn)了JavaScript。為了避免Netscape Communications的任何許可問(wèn)題刘陶,Microsft將Javascript的實(shí)現(xiàn)改名為JScript胳赌。

微軟對(duì)JScript的這種采用和積極的實(shí)現(xiàn)將被證明是JavaScript的一個(gè)重大飛躍。因此匙隔,到目前為止疑苫,有兩個(gè)不同版本的JavaScript漂浮在一起,沒(méi)有標(biāo)準(zhǔn)化纷责。這是我們今天看到的瀏覽器不兼容的開始捍掺。與C、C++再膳、Java等所有其他編程語(yǔ)言不同挺勿,JavaScript沒(méi)有任何基本標(biāo)準(zhǔn)。

向ECMA提交標(biāo)準(zhǔn)化文件

由于JavaScript沒(méi)有標(biāo)準(zhǔn)喂柒,而且業(yè)界對(duì)此越來(lái)越擔(dān)心不瓶,因此JavaScript1.1于1997年提交給歐洲計(jì)算機(jī)制造商協(xié)會(huì)(ECMA)進(jìn)行標(biāo)準(zhǔn)化。成立了一個(gè)技術(shù)委員會(huì)灾杰,目的是標(biāo)準(zhǔn)化通用蚊丐、跨平臺(tái)和與供應(yīng)商無(wú)關(guān)的腳本語(yǔ)言的語(yǔ)法和語(yǔ)義。該委員會(huì)由Sun Microsystems艳吠、Netscape Communications麦备、Microsft和其他各種公司的開發(fā)人員組成。他們提出了ECMA-262標(biāo)準(zhǔn)讲竿,定義了一種新的腳本語(yǔ)言和一種叫做ECMAScript的通用腳本語(yǔ)言泥兰,所有瀏覽器都必須遵守ECMAScript來(lái)創(chuàng)建自己的JavaScript實(shí)現(xiàn)弄屡。不同的瀏覽器嘗試采用ECMAScript作為JavaScript實(shí)現(xiàn)的標(biāo)準(zhǔn),取得了不同程度的成功膀捷。在采用這一標(biāo)準(zhǔn)的整個(gè)過(guò)程中迈嘹,既有成功的經(jīng)歷,也有失敗的經(jīng)歷全庸。

那么JavaScript和ECMAScript是一回事嗎秀仲?

答案是不!雖然您經(jīng)常會(huì)聽到開發(fā)人員使用它們的同義詞壶笼,但是它們之間有很大的不同神僵。ECMAScript是一種基于ECMA-262中定義的標(biāo)準(zhǔn)的腳本語(yǔ)言,不與Web瀏覽器綁定覆劈”@瘢基于ECMAScript構(gòu)建了一種更健壯的腳本語(yǔ)言沛励,比如JavaScript。

JavaScript的實(shí)現(xiàn)

ECMAScript的JavaScript實(shí)現(xiàn)有三個(gè)區(qū)部分炮障,統(tǒng)稱為JavaScript目派。

核心-這是以ECMAScript為基礎(chǔ)的。因此胁赢,ECMAScript定義了語(yǔ)法企蹭、數(shù)據(jù)類型、語(yǔ)句智末、運(yùn)算符等谅摄。

文檔對(duì)象模型(DOM)-瀏覽器呈現(xiàn)為向客戶端或用戶顯示的節(jié)點(diǎn)層次結(jié)構(gòu)。

瀏覽器對(duì)象模型(BOM)-這就是開發(fā)者可以操縱瀏覽器窗口的地方系馆。使用BOM螟凭,開發(fā)人員可以訪問(wèn)瀏覽器特性,并在DOM上下文或正在呈現(xiàn)的頁(yè)面之外對(duì)它們進(jìn)行操作它呀。

接下來(lái)是什么螺男?

理解JavaScript的三種不同實(shí)現(xiàn)及其歷史是很重要的,以了解它在一段時(shí)間內(nèi)是如何影響到語(yǔ)言的纵穿。在本系列文章中下隧,我們接下來(lái)將討論ES6,這是2015年發(fā)布的ECMA-262的第六版谓媒,以及它如何被證明是JavaScript最重要的增強(qiáng)淆院。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市句惯,隨后出現(xiàn)的幾起案子土辩,更是在濱河造成了極大的恐慌,老刑警劉巖抢野,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拷淘,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡指孤,警方通過(guò)查閱死者的電腦和手機(jī)启涯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)恃轩,“玉大人结洼,你說(shuō)我怎么就攤上這事〔骢耍” “怎么了松忍?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)筷厘。 經(jīng)常有香客問(wèn)我鸣峭,道長(zhǎng)伟桅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任叽掘,我火速辦了婚禮楣铁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘更扁。我一直安慰自己盖腕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布浓镜。 她就那樣靜靜地躺著溃列,像睡著了一般。 火紅的嫁衣襯著肌膚如雪膛薛。 梳的紋絲不亂的頭發(fā)上听隐,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音哄啄,去河邊找鬼雅任。 笑死,一個(gè)胖子當(dāng)著我的面吹牛咨跌,可吹牛的內(nèi)容都是我干的沪么。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼锌半,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼禽车!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起刊殉,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤殉摔,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后记焊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逸月,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年亚亲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了彻采。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡捌归,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出岭粤,到底是詐尸還是另有隱情惜索,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布剃浇,位于F島的核電站巾兆,受9級(jí)特大地震影響猎物,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜角塑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一蔫磨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧圃伶,春花似錦堤如、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至侥猩,卻和暖如春榔至,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背欺劳。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工唧取, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人划提。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓兵怯,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親腔剂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子媒区,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354