JavaScript (簡稱 JS) 是具有一級函數 (First-class functions) 的輕量級、直譯式或即時編譯  (JIT-compiled) 的程式語言。它因為用作網頁的腳本語言而大為知名,但也用於許多非瀏覽器的環境,像是 node.jsApache CouchDB。JS 是一個基於原型的 (Prototype-based)、多典範的、動態語言,支援物件導向、指令式以及宣告式 (如函數式程式設計) 風格。 閱讀關於 JavaScript 以取得更多資訊。

本章節主要說明 JavaScript,不涉及網頁特有項目或主機環境。有關網頁特有的 APIs ,請參考 Web API 和 DOM

JavaScript 所採用的標準是 ECMAScript,自 2012 年起,所有現代的瀏覽器均已全面支援 ECMAScript 5.1。較老舊的瀏覽器最少也會支援 ECMAScript 3。ECMA International 於 2015 年 6 月 17 日發布第六版的 ECMAScript,其正式名稱是 ECMAScript 2015,原先被稱作 ECMAScript 6 或 ES6。從那時起, ECMAScript 標準的發布週期是一年,本文件參考了最新的草稿版本,也就是目前的 ECMAScript 2017

別搞混了 JavaScript 和 Java 程式語言。雖然 "Java" 和 "JavaScript" 都是 Oracle 公司在美國和其他國家的商標或註冊商標,但兩個語言有著非常不同的語法、語意和用途。

教學

透過指南和教學來學習編寫 JavaScript。

給完全新手

如果你想學習 JavaScript 但過去沒有 JavaScript 或程式設計經驗,請前往 Learning Area JavaScript topic。該處完整單元如下:

JavaScript 入門
說明一些基本問題像是「什麼是 JavaScript?」、「它看來像什麼?」、「它能做什麼?」,也討論 JavaScript 的主要特色,例如變數、字串、數值以及陣列。
JavaScript 組成元素
繼續我們對 JavaScript 主要基本特色的說明,焦點轉向經常碰到的程式碼區塊類型,像是條件式陳述、迴圈、函數以及事件。
介紹 JavaScript 物件
如果你想加深對 JavaScript 語言的認識並撰寫更有效率的程式,理解 JavaScript 的物件導向特質是件重要的事。

JavaScript 指南

 
JavaScript 指南
更為詳細的 JavaScript 語言指南,供過去有 JavaScript 或其他語言的程式設計經驗的人看。

中等

重新介紹 JavaScript
為了那些以為他們懂 JavaScript 的人寫的簡介。
JavaScript 資料結構
簡介在 JavaScript 可用的資料結構。
比較
JavaScript 提供了三種不同的數值比較方式:嚴謹的相等用 ===,寬鬆的相等用 ==,以及 Object.is() 方法。

進階

繼承與原型鍊
對於原型繼承的常見的迷思和誤解。
嚴謹模式
嚴謹模式會禁止您使用未初始化過的變數。這樣的限制源自於 ECMAScript 5 的規範,為了提高效率和簡化偵錯。
JavaScript 型別陣列
JavaScript 類型陣列提供一個存取二進制數據的機制。
記憶體管理
JavaScript 的記憶體生命週期和垃圾回收機制。
併行模組和事件循環
JavaScript 具有基於「事件循環」的併行模組。

參考

瀏覽完整的 JavaScript 參考文件

標準內建物件
瞭解標準內建物件: ArrayBooleanDateErrorFunctionJSONMathNumberObjectRegExpStringMapSetWeakMapWeakSet 等等。
表式法與運算子
瞭解更多 JavaScript 運算子的行為:instanceoftypeofnewthis運算子優先序等等。
敘述和宣告
瞭解 do-whilefor-in、 for-of、 try-catchlet、 var、 const、 if-else、 switch 和其他 JavaScript 敘述和關鍵字的運作方式。
函數
瞭解如何運用函數來開發你的應用程式。

工具與資源

有用的工具和資源幫助你更好的撰寫 JavaScript

Firefox 開發工具
ScratchpadWeb ConsoleJavaScript ProfilerDebugger 等等。
Firebug
編輯、偵錯和在任何網頁即時監視 CSS、HTML和 JavaScript。
JavaScript Shell
JavaScript Shell 讓你更快的測試片段的 JavaScript。
TogetherJS
合作更簡單了。藉著在你的網站增加 TogetherJS,你的用戶們能在網站上互助 in real time!
Stack Overflow
Stack Overflow 上有關 JavaScript 的問題。
JavaScript 版本和發行說明
瀏覽 JavaScript 的功能歷史和兼容狀態。
JSFiddle
編輯 JavaScript、CSS、HTML 並取得及時結果。可以使用外部資源和與在線上與你的夥伴協作。

Join the JavaScript community

Choose your preferred method for joining the discussion:
 

文件標籤與貢獻者

 最近更新: cwlin0416,