最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript版本迷局介紹

 更新時(shí)間:2011年01月17日 22:16:52   作者:  
有人說喜歡一個(gè)人,沒必要了解她的過去,然而想讀懂一個(gè)人,卻需要了解她的過去。
JavaScript自1995年誕生以來已過去了16個(gè)年頭,如今全世界無數(shù)的網(wǎng)頁在依靠她完成各種關(guān)鍵任務(wù),JavaScript曾在Tiobe發(fā)布的編程語言排行榜中排到了第8名,緊隨C#,JavaScript從過去裝飾性的一種腳本語言轉(zhuǎn)變?yōu)橹髁鞯木幊陶Z言,人們用它來開發(fā)更大更復(fù)雜的程序,這就需要Web開發(fā)人員更深入的了解JavaScript,了解它的過去、現(xiàn)在和未來。

JavaScript歷史簡述

  大概在1992年,一家稱作Nombas的公司開始開發(fā)一種叫做C減減(C-minus-minus,簡稱Cmm)的嵌入式腳本語言。這個(gè)腳本語言捆綁在一個(gè)叫做CEnvi的共享軟件產(chǎn)品中,當(dāng)Netscape Navigator嶄露頭角時(shí),Nombas開發(fā)了一個(gè)可以嵌入網(wǎng)頁中的CEnvi的版本。這些早期的試驗(yàn)稱為Espresso Page(濃咖啡般的頁面),它們代表了第一個(gè)在萬維網(wǎng)上使用的客戶端腳本語言。而Nombas絲毫沒有料到它的理念將會(huì)成為因特網(wǎng)的一塊重要基石。

  當(dāng)網(wǎng)上沖浪越來越流行時(shí),對于開發(fā)客戶端腳本的需求也逐漸增大。當(dāng)時(shí)工作于Netscape的Brendan Eich,開始著手為即將在1995年發(fā)行的Netscape Navigator 2.0開發(fā)一個(gè)稱之為LiveScript的腳本語言,當(dāng)時(shí)的目的是同時(shí)在瀏覽器和服務(wù)器端使用它。Netscape與Sun公司聯(lián)手及時(shí)完成LiveScript實(shí)現(xiàn)。就在Netscape Navigator 2.0即將正式發(fā)布前,Netscape將其更名為JavaScript,目的是為了利用Java這個(gè)因特網(wǎng)時(shí)髦詞匯。Netspace的賭注最終得到回報(bào),JavaScript從此變成了因特網(wǎng)的必備組件。

ECMAScript標(biāo)準(zhǔn)

  因?yàn)镴avaScript 1.0如此成功,Netscape在Netscape Navigator 3.0中發(fā)布了1.1版。恰巧那個(gè)時(shí)候,微軟決定進(jìn)軍瀏覽器,發(fā)布了IE 3.0 并搭載了一個(gè)JavaScript的克隆版,叫做JScript(這樣命名是為了避免與Netscape潛在的許可糾紛)。微軟步入Web瀏覽器領(lǐng)域的這重要一步雖然令其聲名狼藉,但也成為JavaScript語言發(fā)展過程中的重要一步。

  在微軟進(jìn)入后,有3種不同的JavaScript版本同時(shí)存在:Netscape Navigator 3.0中的JavaScript、IE中的JScript以及CEnvi中的ScriptEase。與C和其他編程語言不同的是,JavaScript并沒有一個(gè)標(biāo)準(zhǔn)來統(tǒng)一其語法或特性,而這3種不同的版本恰恰突出了這個(gè)問題。隨著業(yè)界擔(dān)心的增加,這個(gè)語言標(biāo)準(zhǔn)化顯然已經(jīng)勢在必行。1997年,JavaScript 1.1作為一個(gè)草案提交給歐洲計(jì)算機(jī)制造商協(xié)會(huì)(ECMA),由來自Netscape、Sun、微軟、Borland和其他一些對腳本編程感興趣的公司的程序員組成的TC39錘煉出了ECMA-262,該標(biāo)準(zhǔn)定義了叫做ECMAScript的全新腳本語言。從此,Web瀏覽器就開始努力(雖然有著不同程度的成功和失敗)將ECMAScript作為JavaScript實(shí)現(xiàn)的基礎(chǔ)。

  盡管ECMAScript是一個(gè)重要的標(biāo)準(zhǔn),但它并不是JavaScript唯一的部分,當(dāng)然,也不是唯一被標(biāo)準(zhǔn)化的部分。實(shí)際上,一個(gè)完整的JavaScript實(shí)現(xiàn)是由以下3個(gè)不同部分組成的
  •核心(ECMAScript)——JavaScript的核心ECMAScript描述了該語言的語法和基本對象
  •文檔對象模型(DOM)——DOM描述了處理網(wǎng)頁內(nèi)容的方法和接口
  •瀏覽器對象模型(BOM)——BOM描述了與瀏覽器進(jìn)行交互的方法和接口

JavaScript版本歷史

  由于歷史原因及技術(shù)的不斷發(fā)展,JavaScript版本眾多,各種瀏覽器的實(shí)現(xiàn)情況也不一樣,筆者根據(jù)各方面的信息整理了一下JavaScript的各個(gè)版本及對應(yīng)瀏覽器的實(shí)現(xiàn)情況,這也是這篇文章的主要目的,歡迎大家提供意見,一起完善。
版本 發(fā)布日期 基于 Netscape Navigator Mozilla Firefox Internet Explorer Opera Safari Chrome
1.0 1996年3月
2.0
3.0 (JScript 1.0)(1996年8月)


1.1 1996年8月
3.0
3.0 (JScript 2.0)(1997年1月)



1.2 1997年6月
4.0-4.05




1.3 1998年10月 ECMA-262 第一版 (1997年6月發(fā)布)/ ECMA-262 第二版 (1998年6月發(fā)布) 4.06-4.7x
4.0 (JScript 3.0)(1997年10月)


1.4

Netscape Server Only

JScript 4.0 (Visual Studio 6, no IE release)

5.0 (JScript 5.0)(1999年3月)




1.5 2000年11月 ECMA-262 第三版 (1999年12月發(fā)布) 6.0 1.0

5.5 (JScript 5.5)(2000年7月)

6 (JScript 5.6)(2001年10月)

7 (JScript 5.7)(2006年10月)

8 (JScript 5.8)(2009年3月)



1.6 2005年11月 1.5 + Array extras + Array and String generics + E4X
1.5

3.0, 3.1
1.7 2006年10月 1.6 + Pythonic generators + Iterators + let
2.0

3.2, 4.0 1.0
1.8 2008年6月 1.7 + Generator expressions + Expression closures
3.0



1.8.1 2009年6月
1.8 + Native JSON support + Minor Updates
3.5



1.8.5 2010年7月
1.8.1 + ECMAScript 5 Compliance
4 9



2.0 制定中
ECMAScript Harmony
 



特別說明:
  1.當(dāng)Netscape 將它的源代碼作為Mozilla 項(xiàng)目公布于眾時(shí),本來計(jì)劃JavaScript 1.4 將會(huì)嵌入到Netscape Navigator 5.0 中。然而,一個(gè)冒進(jìn)的決定——要完全從頭重新設(shè)計(jì)Netscape 的代碼,破壞了這個(gè)工作。 JavaScript 1.4 僅僅作為一個(gè)Netscape Enterprise Server 的服務(wù)器端腳本語言發(fā)布,以后也沒有被放入瀏覽器中。
  2.E4X(ECMAScript for XML)是一種在ECMAScript(見ECMA-262,包括ActionScript、JavaScript等語言實(shí)現(xiàn))標(biāo)準(zhǔn)的基礎(chǔ)上加入的動(dòng)態(tài)XML支持的程序語言擴(kuò)展。E4X的目的是作為DOM接口之外的另一個(gè)選擇。它可以使程序員在ECMAScript腳本中通過更簡潔的語法來訪問XML文檔。同時(shí),它也為實(shí)現(xiàn)腳本中XML可視化提供了一種新方法。
  3.從 IE 5.5 版本發(fā)布開始,微軟就沒有更新過它基于瀏覽器的JavaScript實(shí)現(xiàn)策略,但在.NET Framework 中包含了JScript.NET作為ECMAScript 4的實(shí)現(xiàn),其中添加了一些特定于微軟的功能,它不能作為客戶端腳本語言在IE中使用,只能用在ASP.NET中作為服務(wù)器端語言或者獨(dú)立應(yīng)用程序來用。與其它的JavaScript版本不同,JSscript.NET是編譯型語言,可以獨(dú)立的可執(zhí)行文件。
  4.ECMAScript Harmony其實(shí)是包含JavaScript 2.0在內(nèi)的ECMAScript第四版的一個(gè)臨時(shí)新命名(未來可能是ECMAScript第六版?),ECMAScript第五版則是獨(dú)立開發(fā)的ECMAScript 3.1語言的后期命名。
  5.如今,所有的主流 Web 瀏覽器都遵守 ECMA-262 第三版,即實(shí)現(xiàn)的是JavaScript 1.5版,JavaScript 1.6-1.9只是ECMAScript (JavaScript on Gecko)升級至JavaScript 2.0的臨時(shí)代號。
檢測JavaScript版本
點(diǎn)擊測試按鈕可以測試你當(dāng)前瀏覽器支持的JavaScrpt版本,在IE8中測試,提示說支持的版本是1.3,奇怪?

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

參考內(nèi)容:

1.JavaScript高級程序設(shè)計(jì)
2.http://en.wikipedia.org/wiki/Javascript#History 3.http://en.wikipedia.org/wiki/ECMAScript#Version_correspondence
4.http://ejohn.org/blog/versions-of-javascript/
5.https://developer.mozilla.org/en/JavaScript/Guide/JavaScript_Overview
作者:夢想
出處:http://www.cnblogs.com/lhb25

相關(guān)文章

  • 工作中常用的js、jquery自定義擴(kuò)展函數(shù)代碼片段匯總

    工作中常用的js、jquery自定義擴(kuò)展函數(shù)代碼片段匯總

    本文主要對工作中常用的js、jquery自定義擴(kuò)展函數(shù)代碼片段進(jìn)行了分享,具有很好的參考價(jià)值,需要的朋友一起來看下吧
    2016-12-12
  • javascript深拷貝和淺拷貝詳解

    javascript深拷貝和淺拷貝詳解

    本文主要介紹了javascript深拷貝和淺拷貝的相關(guān)知識。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • javascript 網(wǎng)頁進(jìn)度條簡單實(shí)例

    javascript 網(wǎng)頁進(jìn)度條簡單實(shí)例

    這篇文章主要介紹了javascript 網(wǎng)頁進(jìn)度條簡單實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 屬于你的jQuery提示框(Tip)插件

    屬于你的jQuery提示框(Tip)插件

    這篇文章主要分享了一款屬于你的jQuery提示框(Tip)插件,功能很強(qiáng)大,希望大家喜歡
    2016-01-01
  • 全面解析JavaScript中offsetLeft、offsetTop的用法

    全面解析JavaScript中offsetLeft、offsetTop的用法

    本文主要介紹了全面解析JavaScript中offsetLeft、offsetTop的用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • js 頁面刷新location.reload和location.replace的區(qū)別小結(jié)

    js 頁面刷新location.reload和location.replace的區(qū)別小結(jié)

    在實(shí)際應(yīng)用的時(shí)候,重新刷新頁面的時(shí)候,我們通常使用: location.reload() 或者是 history.go(0) 來做。下面有一些相關(guān)的內(nèi)容,大家看完了就會(huì)有更多的收獲。
    2009-12-12
  • 如何讓DIV可編輯、可拖動(dòng)示例代碼

    如何讓DIV可編輯、可拖動(dòng)示例代碼

    DIV是一個(gè)盒子模型通俗說就是一個(gè)容器,在布局過程中經(jīng)常會(huì)使用到這個(gè)標(biāo)簽,在本文大家將學(xué)會(huì)如何讓DIV可編輯、可拖動(dòng),感興趣的朋友可以參考下,希望對大家有所幫助
    2013-09-09
  • 微信小程序之console.log()使用方法

    微信小程序之console.log()使用方法

    console.log()?是 JavaScript 中的標(biāo)準(zhǔn)內(nèi)置函數(shù),主要用于在瀏覽器的控制臺(tái)(Console)中輸出信息,幫助開發(fā)者進(jìn)行調(diào)試和跟蹤代碼運(yùn)行狀態(tài),下面給大家介紹微信小程序之console.log()使用,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • JavaScript實(shí)現(xiàn)數(shù)組對象去重的多種方法

    JavaScript實(shí)現(xiàn)數(shù)組對象去重的多種方法

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)數(shù)組對象去重的多種方法,使用set對象或使用`reduce`方法,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2023-02-02
  • KnockoutJS 3.X API 第四章之click綁定

    KnockoutJS 3.X API 第四章之click綁定

    click綁定主要作用是用于DOM元素被點(diǎn)擊時(shí)調(diào)用相關(guān)JS函數(shù)。這篇文章主要介紹了KnockoutJS 3.X API 第四章之click綁定,感興趣的朋友一起看看吧
    2016-10-10

最新評論

台东县| 石林| 固安县| 廉江市| 花莲县| 阿拉善盟| 山丹县| 云和县| 石棉县| 师宗县| 建昌县| 蒙阴县| 武隆县| 巨鹿县| 本溪| 东丽区| 任丘市| 奎屯市| 娱乐| 开鲁县| 东平县| 开封县| 高平市| 克山县| 嘉荫县| 商都县| 普兰县| 宝兴县| 永城市| 霍山县| 阿鲁科尔沁旗| 恩施市| 浙江省| 牙克石市| 泸定县| 云和县| 洪雅县| 乐陵市| 大方县| 涿州市| 宁都县|