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 並取得及時結果。可以使用外部資源和與在線上與你的夥伴協作。