你真的瞭解JavaScript?

什麼是JavaScript?

JavaScript,一般縮寫爲JS,是一種高級的,解釋執行的編程語言。 JavaScript是一門基於原型、函數先行的語言,是一門多範式的語言,它支持面向對象編程,命令式編程,以及函數式編程。宿主環境:瀏覽器(web端)、node.js(服務端)html

解釋型語言和編譯型語言

解釋型語言

這種編程語言須要利用解釋器,在運行時,動態將代碼逐句解釋(interpret)爲機器代碼,或是已經預先編譯爲機器代碼的的子程序,以後再運行。node

解釋型語言:Python Ruby JavaScript PHPgit

編譯型語言

是一種以編譯器來實現的編程語言,通過編譯器先將代碼編譯爲機器代碼,以後再運行。github

編譯型語言: C語言 C++ Objective-C D語言 C#web

解釋型語言,是在運行的時候將程序翻譯成機器語言,因此運行速度相對於編譯型語言要慢。

至於Java屬於哪種語言我也不肯定正則表達式

JavaScript存在的意義

JavaScript 做爲動態腳本語言最先主要運行在web端,因爲Node.js的誕生讓JS也能夠在服務端中運行。 在客戶端,JavaScript在傳統意義上被實現爲一種解釋語言,但在最近,它已經能夠被即時編譯(JIT)執行。隨着最新的HTML5和CSS3語言標準的推行它還可用於遊戲、桌面和移動應用程序的開發和在服務器端網絡環境運行,如Node.js。編程

JavaScript 簡史

JavaScript的誕生

1994年,網景公司(Netscape)發佈了Navigator瀏覽器0.9版。這是歷史上第一個比較成熟的網絡瀏覽器,轟動一時。可是,這個版本的瀏覽器只能用來瀏覽,不具有與訪問者互動的能力。......網景公司急需一種網頁腳本語言,使得瀏覽器能夠與網頁互動。promise

1995年網景招募了布蘭登·艾克,艾克在1995年5月僅花了十天時間就把原型設計出來了,最初命名爲Mocha,1995年9月在Netscape Navigator 2.0的Beta版中更名爲LiveScript,同年12月,Netscape Navigator 2.0 Beta 3中部署時被重命名爲JavaScript。JavaScript推出後在瀏覽器上大獲成功。瀏覽器

JavaScript的標準化

1996年11月,網景正式向ECMA(歐洲計算機制造商協會)提交語言標準。1997年6月,ECMA以JavaScript語言爲基礎制定了ECMAScript標準規範ECMA-262。JavaScript成爲了ECMAScript最著名的實現之一服務器

JavaScript的設計思路

(1)借鑑C語言的基本語法;

(2)借鑑Java語言的數據類型和內存管理;

(3)借鑑Scheme語言,將函數提高到"第一等公民"(first class)的地位;

(4)借鑑Self語言,使用基於原型(prototype)的繼承機制。

JavaScript主要涵蓋了哪幾部分

ECMAScript,描述了該語言的語法和基本對象

文檔對象模型(DOM),描述處理網頁內容的方法和接口

瀏覽器對象模型(BOM),描述與瀏覽器進行交互的方法和接

JavaScript core

ECMAScript標準

ECMAScript是爲網景的布蘭登·艾克開發的一種腳本語言(JavaScript)制定的標準化規範; ECMA-262 它規定了這門語言的下列組成部分:

  • 語法
  • 類型
  • 語句
  • 關鍵字
  • 保留字
  • 操做符
  • 對象

詳情地址 www.ecma-international.org/ecma-262/9.…

JavaScript版本(截止到2018)

ECMAScript 1

1997年06月:發佈首版

ECMAScript 2

1998年06月:修改規範徹底符合ISO/IEC 16262國際標準。

ECMAScript 3

1999年12月發佈: 是對ECMAScript標準第一次真正的修改。 新增了對正則表達式、新控制語句、try-catch異常處理的支持,修改了字符處理、錯誤定義和數值輸出等內容。 從各方面綜合來看,第3版標誌着ECMAScript成爲了一門真正的編程語言。

ECMAScript 4

2007年10月ECMAScript 4.0版草案發布 對3.0版作了大幅升級,預計次年8月發佈正式版本。 草案發布後,因爲4.0版的目標過於激進,各方對因而否經過這個標準,發生了嚴重分歧。

2008年7月ECMAScript 4.0發佈前被廢棄 因爲對於下一個版本應該包括哪些功能,各方分歧太大,爭論過於激進,ECMA開會決定,停止ECMAScript 4.0的開發(即廢除了這個版本)。

ECMAScript 5

2009年12月:完善了ECMAScript 3版本、增長"strict mode,"(嚴格模式)、以及新的功能,如getter和setter、JSON庫支持和更完整的對象屬性。

ECMAScript 6

2015年06月:第六版的名字有不少,能夠叫ECMAScript 6(ES6),也能夠叫ECMAScript 2015(ES2015)。

此版本增長了很是重要的東西:let、const、class、modules、 arrow functions,、template string, destructuring, default, rest argument、binary data、promises等等。

規範地址:www.ecma-international.org/ecma-262/6.… ES6及以上的教程可參考Babel提供的: babeljs.io/learn-es201…

ECMAScript 7

2016年06月:也被稱爲ECMAScript 2016。完善ES6規範,還包括兩個新的功能:求冪運算符(*)和array.prototype.includes方法。

規範地址:www.ecma-international.org/ecma-262/7.…

ECMAScript 8

2017年06月:增長新的功能,如併發、原子操做、Object.values/Object.entries、字符串填充、promises、await/asyn等等。

規範地址: www.ecma-international.org/ecma-262/8.…

ECMAScript 9

2018年06月: ECMAScript 2018 主要包含內容: 異步迭代器:原生支持在 JavaScript 中對異步獲取的數據作迭代。 Object Rest/Spread Properties Promise.prototype.finally Template Literal(模板字面量):取消 Escape-Sequenzen 限制

正則表達式: 支持 s (dotAll) 模式 Unicode 屬性轉義(Property Escape) 支持後行斷言(Lookbehind Assertions) 命名捕獲組(named capture group

規範地址:www.ecma-international.org/ecma-262/9.…

JavaScript解釋器

Google:V8引擎

倉庫地址:github.com/v8/v8

講解:www.cnblogs.com/banyue/p/86…

JavaScript運行機制

JavaScript運行機制講解 juejin.im/post/5a62e1…

相關文章
相關標籤/搜索