JavaScript
JavaScript(簡稱 JS)是具有一級函數 (First-class functions) 的輕量級、直譯式或即時編譯(JIT-compiled)的程式語言。它因為用作網頁的腳本語言而大為知名,但也用於許多非瀏覽器的環境,像是 Node.js、Apache CouchDB。JavaScript 是一個的基於原型的、多範型的、動態語言,支援物件導向、指令式以及宣告式(如函數式程式設計)風格。
本章節主要說明 JavaScript,不涉及網頁特有項目或主機環境。有關網頁特有的 APIs ,請參考 Web API 和 DOM。
JavaScript 所採用的標準是 ECMAScript Language Specification(ECMA-262),自 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 或程式設計經驗,請前往 JavaScrip-動態的用戶端指令。該處完整單元如下:
- JavaScript 入門
- 
說明一些基本問題像是「什麼是 JavaScript?」、「它看來像什麼?」、「它能做什麼?」,也討論 JavaScript 的主要特色,例如變數、字串、數值以及陣列。 
- JavaScript 組成元素
- 
繼續我們對 JavaScript 主要基本特色的說明,焦點轉向經常碰到的程式碼區塊類型,像是條件式陳述、迴圈、函數以及事件。 
- 介紹 JavaScript 物件
- 
如果你想加深對 JavaScript 語言的認識並撰寫更有效率的程式,理解 JavaScript 的物件導向特質是件重要的事。 
JavaScript 指南
- JavaScript 指南
- 
更為詳細的 JavaScript 語言指南,供過去有 JavaScript 或其他語言的程式設計經驗的人看。 
中階
- 客戶端 web API
- 
在為網站或應用程序編寫客戶端 JavaScript 時,你將很快遇到應用程式介面(API)。 API 是應用程式介面,用於操作運行站點的瀏覽器和操作系統的不同方面,或操縱來自其他網站或服務的資料。 在本單元中,我們將探討 API 是什麼,以及如何使用你在開發工作中經常遇到的一些最常見的 API。 
- 重新介紹 JavaScript
- 
為了那些以為他們懂 JavaScript 的人寫的簡介。 
- JavaScript 資料結構
- 
簡介在 JavaScript 可用的資料結構。 
- 相等值比較和相等度
- 
JavaScript 提供了三種不同的數值比較方式:嚴謹的相等用 ===,寬鬆的相等用==,以及Object.is()方法。
- 閉包(Closure)
- 
閉包(Closure)是函式以及該宣告函式所包含的作用域環境(lexical environment)的組合。 
進階
- 繼承與原型鍊
- 
對於原型繼承的常見的迷思和誤解。 
- 嚴謹模式
- 
嚴謹模式會禁止你使用未初始化過的變數。這樣的限制源自於 ECMAScript 5 的規範,為了提高效率和簡化偵錯。 
- JavaScript 型別陣列
- 
JavaScript 類型陣列提供一個存取二進制資料的機制。 
- 記憶體管理
- 
JavaScript 的記憶體生命週期和垃圾回收機制。 
- 併行模組和事件循環
- 
JavaScript 具有基於「事件循環」的併行模組。 
參考
瀏覽完整的 JavaScript 參考文件。
- 標準內建物件
- 
瞭解標準內建物件: Array、Boolean、Date、Error、Function、JSON、Math、Number、Object、RegExp、String、Map、Set、WeakMap、WeakSet等等。
- 表式法與運算子
- 
瞭解更多 JavaScript 運算子的行為: instanceof、typeof、new、this、運算子優先序等等。
- 敘述和宣告
- 
瞭解 do-while、for-in、for-of、try-catch、let、var、const、if-else、switch和其他 JavaScript 敘述和關鍵字的運作方式。
- 函數
- 
瞭解如何運用函數來開發你的應用程式。 
工具與資源
有用的工具和資源幫助你更好的撰寫及除錯 JavaScript 程式碼。
- Firefox 開發工具
- 
網頁主控台 (Web Console)、JavaScript 效能分析器(JavaScript Profiler)、除錯器 (Debugger) 等等。 
- JavaScript Shell
- 
JavaScript Shell 讓你更快的測試片段的 JavaScript。 
- TogetherJSPaste
- 
合作更簡單了。藉著在你的網站增加 TogetherJS,你的用戶們能在網站上互助 in real time! 
- Stack Overflow
- 
Stack Overflow 上有關 JavaScript 的問題。 
- JSFiddle
- 
編輯 JavaScript、CSS、HTML 並取得及時結果。可以使用外部資源和與在線上與你的夥伴協作。