首頁 >web前端 >js教程 >一起看看ECMAScript和JavaScript的差別

一起看看ECMAScript和JavaScript的差別

coldplay.xixi
coldplay.xixi轉載
2021-01-27 17:50:472616瀏覽

一起看看ECMAScript和JavaScript的差別

免費學習推薦:#js影片教學

##js影片教學

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三部分組成,如下圖。

一起看看ECMAScript和JavaScript的差別

(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的具體實作。

相關免費學習推薦:javascript學習教學

以上是一起看看ECMAScript和JavaScript的差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除