您好,登錄后才能下訂單哦!
小編給大家分享一下ECMAScript和JavaScript對比有哪些區別,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
1、ECMAScript的簡介
ECMAScript是一種由Ecma國際(前身為歐洲計算機制造商協會,英文名稱是European Computer Manufacturers Association)通過ECMA-262標準化的腳本程序設計語言。這種語言在萬維網上應用廣泛,它往往被稱為JavaScript或JScript,所以它可以理解為是JavaScript的一個標準,但實際上后兩者是ECMA-262標準的實現和擴展。
1.1 ECMA International
ECMA International是一家國際性會員制度的信息和電信標準組織,它和企業密切相連的組織,所以 Ecma國際制定的規范標準都是由各類企業來做主要的制定和推廣。1997年該組織發布了MCMA-262的標準,該標準制定了ECMAScript語言規范。ECMAScript就是從這里來的。
1.2 ECMA-262標準(ES標準)
ECMA-262是ECMA TC39小組制定的關于腳本語言的規范標準。TC39成員由來自一些對腳本編程感興趣的公司的程序員組成的。
ECMA-262標準定義了ECMAScript語言規范。這個標準也叫成為ECMAScript語言規范(ECMAScript Language Specification),簡稱ES規范。
ES規范從1997發布到現在為止是第八個版本。ECMAScript是基于幾種原始技術,最著名的是JavaScript(Netscape Navigator 2.0)和JScript(Microsoft IE3)。
1.3 JavaScript標準化的歷程
1995年前后:互聯網爆發,Web應用層出不窮,那時候只要有注冊一個.com的域名,基本就能暴富,就如同現在的區塊鏈和人工智能。就在那時候JavaScript有三個主流版本:
(1)Netscape Navigator 3.0 中的 JavaScript。
(2)IE 中的 JScript。
(3)CEnvi 中的ScriptEase。
與和其它編程語言不同的是,JavaScript 并沒有一個標準來統一其語法或特性,而這 3 種不同的版本恰恰突出了這個問題。隨著業界擔心的增加,這個語言的標準化顯然已經勢在必行。
1997年:JavaScript 1.1 作為一個草案提交給歐洲計算機制造商協會(ECMA)。第 39 技術委員會(TC39)被委派來“標準化一個通用、跨平臺、中立于廠商的腳本語言的語法和語義”。 錘煉出了 ECMA-262第一版,該標準定義了名為 ECMAScript 的全新腳本語言。
1998年:國際標準化組織及國際電工委員會(ISO/IEC)也采納 ECMAScript 作為標準(ISO/IEC-16262)。同年發布了ECMA-262第二個版(ES2).第二個版本基本沒有加新功能。
2002年:ECMA-262第三版(ES3),新增引入了強大的正則表達式,更好的字符串處理,新的控制語句,try / catch異常處理,更嚴格的錯誤定義,數字輸出的格式化以及預期未來語言增長的微小變化。第三版在當時應用非常廣泛,幾乎所有的瀏覽器都支持ES3的標準。
ECMA-262第4版本(ES4)夭折,部分功能被遷移到ES6中。
2009年:ECMA-262第五版(ES5)發布。在ES3的基礎上增加了很多功能:包括訪問器屬性,對象的反射創建和檢查,屬性的程序控制,附加的數組操作函數,對JSON對象編碼格式的支持以及提供增強的錯誤檢查和程序安全性的嚴格模式。
2011年:被批準為國際標準ISO/IEC 16262:2011。同年發布ES5.1版本(對ES5做一些升級優化)同時被MCMA-262和ISO/IEC批準。
2015年:ECMA-262第六版(ES6或者叫ES 2015語言規范),ES6可以說從2000年,ES3發布之后就開始沉淀,由于ES4的夭折,ES4中的一些功能特性一直等到ES6才發布,所以第六版的完全是十五年的努力的結果。
ES6為大型應用程序提供更好的支持,創建Lib庫,以及使用ECMAScript作為其它語言的編譯目標。ES6主要新增了如下功能:主要增強包括模塊,類聲明,詞法塊范圍,迭代器和生成器,異步編程的承諾,解構模式和適當的尾部調用。內置的ECMAScript庫被擴展為支持額外的數據抽象,包括映射,集合和二進制數值數組,以及對字符串和正則表達式的使用。
2、JavaScript的簡介
JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基于原型的語言,內置支持類型。它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用于客戶端的腳本語言,最早是在HTML(標準通用標記語言下的一個應用)網頁上使用,用來給HTML網頁增加動態功能。
JavaScript是通用的跨平臺腳本語言,遵守ECMA-262標準(ES標準),換句話說就是ECMAScript的方言。為了取得技術優勢,微軟推出了JScript,CEnvi推出ScriptEase,與JavaScript同樣可在瀏覽器上運行。為了統一規格,因為JavaScript兼容于ECMA標準,因此也稱為ECMAScript。
JavasSript商標屬于Oracle公司,因為Sun公司被Oracle收購。JavaScript早年被Sun公司注冊,代表JavaScript這門語言。但是最早發明JavaScript是網景公司。在1995年時,由Netscape公司的Brendan Eich,在網景導航者瀏覽器上首次設計實現而成。因為Netscape與Sun合作,Netscape管理層希望它外觀看起來像Java,因此取名為JavaScript。但實際上它的語法風格與Self及Scheme較為接近。
2.1 JavaScript基本特點
JavaScript是一種屬于網絡的腳本語言,已經被廣泛用于Web應用開發,常用來為網頁添加各式各樣的動態功能,為用戶提供更流暢美觀的瀏覽效果。通常JavaScript腳本是通過嵌入在HTML中來實現自身的功能的。
(1)一種解釋性腳本語言(代碼不進行預編譯)。
(2)主要用來向HTML(標準通用標記語言下的一個應用)頁面添加交互行為。
(3)可以直接嵌入HTML頁面,但寫成單獨的JS文件有利于結構和行為的分離。
(4)跨平臺特性,在絕大多數瀏覽器的支持下,可以在多種平臺下運行(如Windows、Linux、Mac、Android、iOS等)。
Javascript腳本語言同其它語言一樣,有它自身的基本數據類型,表達式和算術運算符及程序的基本程序框架。Javascript提供了四種基本的數據類型和兩種特殊數據類型用來處理數據和文字。而變量提供存放信息的地方,表達式則可以完成較復雜的信息處理。
2.2 JavaScript組成部分
JavaScript由ECMAScript、DOM、BOM三部分組成,如下圖。
(1)ECMAScript:描述了該語言的語法和基本對象。
(2)DOM:文檔對象模型(DOM),描述處理網頁內容的方法和接口。
(3)BOM:瀏覽器對象模型(BOM),描述與瀏覽器進行交互的方法和接口。
2.2.1 DOM 文檔對象模型
文檔對象模型(Document Object Model,簡稱DOM),是W3C組織推薦的處理可擴展標志語言的標準編程接口。在網頁上,組織頁面(或文檔)的對象被組織在一個樹形結構中,用來表示文檔中對象的標準模型就稱為DOM。Document Object Model的歷史可以追溯至1990年代后期微軟與Netscape的“瀏覽器大戰”,雙方為了在JavaScript與JScript一決生死,于是大規模的賦予瀏覽器強大的功能。微軟在網頁技術上加入了不少專屬事物,既有VBScript、ActiveX、以及微軟自家的DHTML格式等,使不少網頁使用非微軟平臺及瀏覽器無法正常顯示。DOM即是當時蘊釀出來的杰作。
2.2.2 BOM 瀏覽器對象模型
BOM(Browser Object Model)即瀏覽器對象模型。BOM提供了獨立于內容而與瀏覽器窗口進行交互的對象;由于BOM主要用于管理窗口與窗口之間的通訊,因此其核心對象是window;BOM由一系列相關的對象構成,并且每個對象都提供了很多方法與屬性;BOM缺乏標準,JavaScript語法的標準化組織是ECMA,DOM的標準化組織是W3C,BOM最初是Netscape瀏覽器標準的一部分。
瀏覽器窗口交互的一些對象,例如可以移動、調整瀏覽器大小的window對象,可以用于導航的location對象與history對象,可以獲取瀏覽器、操作系統與用戶屏幕信息的navigator與screen對象,可以使用document作為訪問HTML文檔的入口,管理框架的frames對象等。
2.3 JavaScript處理引擎
JavaScript處理引擎是能解析并且運行JavaScript代碼的解釋器。瀏覽器通常會有JavaScript引擎,JavaScript剛出來時就是運行在瀏覽器中,作為客戶端語言使用。
常見的JavaScript引擎:
(1)Chrome V8
(2)Firefox SpiderMonkey
(3)Microsoft Edge Chakra
提一下Node.js是基于Chrome V8引擎。上文提到V8引擎是用來解析執行JS,并且V8是基于ECMAScript標準實現的。換個角度說,Node.js里頭沒有DOM和BOM的操作,只保留的JavaScript的語法核心(ES),并且增加了事件驅動的非阻塞 I/O 模型,使其輕量級和高效。Node.js作為服務運行在Windows、Linux、Mac,把JavaScript的角色從前臺開發,轉移到了后臺開發。
還有當前有點過時的用于Flash編程的ActionScript也是ECMAScript的具體實現。
以上是“ECMAScript和JavaScript對比有哪些區別”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。