什么是 JavaScript
JavaScript ( JS ) 是一種具有函數(shù)優(yōu)先的輕量級,解釋型或即時編譯型的編程語言。(MDN)
JavaScript 是一種編程語言,主要參與構(gòu)建 Web 前端應(yīng)用。
1. JavaScript 的由來
早期的瀏覽器是不具備與用戶交互能力的,可以想象一下,在那個電話撥號上網(wǎng)的年代,帶寬只有 56Kbps,也就是意味著標(biāo)準(zhǔn)最高下載速率只有 8KB/s。
在這個速度下,表單提交就是噩夢般的存在。
例如報名考試,就需要填寫非常多內(nèi)容,當(dāng)用戶花了十幾分鐘找各種資料填寫表單后,點擊提交就要等待十幾秒甚至更多。
假如這時表單信息出錯,如身份證沒核對仔細(xì)少了一位,整個頁面就會做刷新操作,表單需要重新填寫。
這是一個比較典型的場景。當(dāng)時最火的瀏覽器 Navigator 的開發(fā)公司 netscape 就因這些問題,急需一個瀏覽器使用的腳本語言,讓運行在瀏覽器上的網(wǎng)頁可以做一些交互。
netscape 因為有這個需求,招聘了 Brendan Eich , Brendan Eich 進公司后就開始研究使用 Scheme 語言作為在網(wǎng)頁中使用的腳本語言的可能性。
但是由于當(dāng)時 Java 爆火,netscape 又在于開發(fā)了 Java 的 Sun 公司合作,就想讓這個腳本語言要足夠像 Java,但是又要比 Java 簡單。
然后 Brendan Eich 就被指定開發(fā)這個“簡易 Java”。

一段時間之后 JavaScript 也就誕生了。
后續(xù) netscape 將 JavaScript 交給了 ECMA 組織進行標(biāo)準(zhǔn)化,編號為 262,也就是說現(xiàn)在的 JavaScript 實際上是 ECMA-262 標(biāo)準(zhǔn)的實現(xiàn)。
2. 與 Java 的區(qū)別
通過JavaScript的由來可以知道,兩個語言本質(zhì)上沒有太大的關(guān)系,僅僅只為了讓他們像,才讓 JavaScript 的名字中有了 Java ,才讓他的內(nèi)部的一些設(shè)計機制像 Java。
事實上 JavaScript 上在設(shè)計上還融合了C語言的語法,Self語言的原型設(shè)計等。
3. JavaScript 的主要應(yīng)用
以下列舉的各個場景不僅僅是需要掌握
JavaScript,還需要很多知識點與技術(shù)棧來共同協(xié)作完成,但是JavaScript是必不可少的技術(shù)棧。
3.1 網(wǎng)頁開發(fā)
網(wǎng)頁開發(fā)的基本三大件為 HTML、CSS、JavaScript,如果將 HTML 比作骨架,CSS 比作皮膚,那 JavaScript 就是可以讓骨架動起來,改變皮膚性狀的存在。
現(xiàn)代的前端應(yīng)用離不開 JavaScript ,隨著瀏覽器的性能越來越好,產(chǎn)品交互越來越復(fù)雜,JavaScript 的地位也越來越高。
表單驗證、動畫效果甚至 3D 應(yīng)用,均可以由 JavaScript 來完成。

3.2 服務(wù)端應(yīng)用開發(fā)
2009 年發(fā)布 Node.js 的發(fā)布,意味著前端程序員可以用較低的成本跨入服務(wù)端開發(fā)。
Node.js 提供了開發(fā)服務(wù)端所需要的特性,如 HTTP 服務(wù)、本地文件讀寫操作等。
開發(fā)者可以使用 JavaScript 語言開發(fā) Node.js 應(yīng)用。

3.3 桌面應(yīng)用開發(fā)
Electron 是由 Github 開發(fā)的,可以使用 HTML、CSS、JavaScript 來構(gòu)建桌面應(yīng)用的開源庫。
使用Electron就可以讓前端開發(fā)者進行桌面端應(yīng)用的開發(fā)。
Visual Studio Code、Atom、Skype 等應(yīng)用都是使用 Electron 開發(fā)的。

3.4 移動端應(yīng)用開發(fā)
移動端應(yīng)用也可以使用 JavaScript 進行開發(fā),如 React Native 或者 Weex 等框架。

4. 適合群體
本篇 Wiki 主要為 ECMAScript262 第五版內(nèi)容,適合初學(xué)者學(xué)習(xí)或者進行知識點查閱。
5. 前置知識
章節(jié)中的例子可能會涉及部分 HTML 與 CSS 的知識點,所以需要了解或者掌握一些 HTML、CSS 相關(guān)的內(nèi)容作為前置知識。
然冬 ·
2025 imooc.com All Rights Reserved |