JavaScript

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

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

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 APIs

在為網站或應用程序編寫客戶端 JavaScript 時,你將很快遇到應用程式介面(API)。 API 是應用程式介面,用於操作運行站點的瀏覽器和操作系統的不同方面,或操縱來自其他網站或服務的資料。 在本單元中,我們將探討 API 是什麼,以及如何使用你在開發工作中經常遇到的一些最常見的 API。

重新介紹 JavaScript

為了那些以為他們懂 JavaScript 的人寫的簡介。

JavaScript 資料結構

簡介在 JavaScript 可用的資料結構。

相等值比較和相等度

JavaScript 提供了三種不同的數值比較方式:嚴謹的相等用 ===,寬鬆的相等用 ==,以及 Object.is() (en-US) 方法。

閉包(Closure)

閉包(Closure)是函式以及該宣告函式所包含的作用域環境(lexical environment)的組合。

進階

繼承與原型鍊

對於原型繼承的常見的迷思和誤解。

嚴謹模式

嚴謹模式會禁止你使用未初始化過的變數。這樣的限制源自於 ECMAScript 5 的規範,為了提高效率和簡化偵錯。

JavaScript 型別陣列

JavaScript 類型陣列提供一個存取二進制資料的機制。

記憶體管理

JavaScript 的記憶體生命週期和垃圾回收機制。

併行模組和事件循環

JavaScript 具有基於「事件循環」的併行模組。

參考

瀏覽完整的 JavaScript 參考文件

標準內建物件

瞭解標準內建物件: ArrayBooleanDateError (en-US)Function (en-US)JSONMathNumberObject (en-US)RegExp (en-US)StringMapSetWeakMap (en-US)WeakSet (en-US) 等等。

表式法與運算子

瞭解更多 JavaScript 運算子的行為:instanceof (en-US)typeofnewthis運算子優先序等等。

敘述和宣告 (en-US)

瞭解 do-whilefor-infor-of (en-US)try-catchletvarconstif-elseswitch 和其他 JavaScript 敘述和關鍵字的運作方式。

函數 (en-US)

瞭解如何運用函數來開發你的應用程式。

工具與資源

有用的工具和資源幫助你更好的撰寫及除錯 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 並取得及時結果。可以使用外部資源和與在線上與你的夥伴協作。