什么是 JavaScript
JavaScript ( JS ) 是一種具有函數優(yōu)先的輕量級,解釋型或即時編譯型的編程語言。(MDN)
JavaScript
是一種編程語言,主要參與構建 Web 前端應用。
1. JavaScript 的由來
早期的瀏覽器是不具備與用戶交互能力的,可以想象一下,在那個電話撥號上網的年代,帶寬只有 56Kbps,也就是意味著標準最高下載速率只有 8KB/s。
在這個速度下,表單提交就是噩夢般的存在。
例如報名考試,就需要填寫非常多內容,當用戶花了十幾分鐘找各種資料填寫表單后,點擊提交就要等待十幾秒甚至更多。
假如這時表單信息出錯,如身份證沒核對仔細少了一位,整個頁面就會做刷新操作,表單需要重新填寫。
這是一個比較典型的場景。當時最火的瀏覽器 Navigator
的開發(fā)公司 netscape
就因這些問題,急需一個瀏覽器使用的腳本語言,讓運行在瀏覽器上的網頁可以做一些交互。
netscape
因為有這個需求,招聘了 Brendan Eich
, Brendan Eich
進公司后就開始研究使用 Scheme
語言作為在網頁中使用的腳本語言的可能性。
但是由于當時 Java 爆火,netscape
又在于開發(fā)了 Java 的 Sun
公司合作,就想讓這個腳本語言要足夠像 Java,但是又要比 Java 簡單。
然后 Brendan Eich
就被指定開發(fā)這個“簡易 Java”。
一段時間之后 JavaScript
也就誕生了。
后續(xù) netscape
將 JavaScript
交給了 ECMA
組織進行標準化,編號為 262,也就是說現(xiàn)在的 JavaScript
實際上是 ECMA-262
標準的實現(xiàn)。
2. 與 Java 的區(qū)別
通過JavaScript的由來
可以知道,兩個語言本質上沒有太大的關系,僅僅只為了讓他們像,才讓 JavaScript
的名字中有了 Java
,才讓他的內部的一些設計機制像 Java
。
事實上 JavaScript
上在設計上還融合了C語言
的語法,Self語言
的原型設計等。
3. JavaScript 的主要應用
以下列舉的各個場景不僅僅是需要掌握
JavaScript
,還需要很多知識點與技術棧來共同協(xié)作完成,但是JavaScript
是必不可少的技術棧。
3.1 網頁開發(fā)
網頁開發(fā)的基本三大件為 HTML、CSS、JavaScript,如果將 HTML 比作骨架,CSS 比作皮膚,那 JavaScript 就是可以讓骨架動起來,改變皮膚性狀的存在。
現(xiàn)代的前端應用離不開 JavaScript
,隨著瀏覽器的性能越來越好,產品交互越來越復雜,JavaScript
的地位也越來越高。
表單驗證、動畫效果甚至 3D 應用,均可以由 JavaScript 來完成。

3.2 服務端應用開發(fā)
2009 年發(fā)布 Node.js
的發(fā)布,意味著前端程序員可以用較低的成本跨入服務端開發(fā)。
Node.js
提供了開發(fā)服務端所需要的特性,如 HTTP 服務、本地文件讀寫操作等。
開發(fā)者可以使用 JavaScript
語言開發(fā) Node.js
應用。
3.3 桌面應用開發(fā)
Electron
是由 Github
開發(fā)的,可以使用 HTML、CSS、JavaScript 來構建桌面應用的開源庫。
使用Electron
就可以讓前端開發(fā)者進行桌面端應用的開發(fā)。
Visual Studio Code
、Atom
、Skype
等應用都是使用 Electron
開發(fā)的。
3.4 移動端應用開發(fā)
移動端應用也可以使用 JavaScript
進行開發(fā),如 React Native
或者 Weex
等框架。
4. 適合群體
本篇 Wiki 主要為 ECMAScript262
第五版內容,適合初學者學習或者進行知識點查閱。
5. 前置知識
章節(jié)中的例子可能會涉及部分 HTML
與 CSS
的知識點,所以需要了解或者掌握一些 HTML
、CSS
相關的內容作為前置知識。