JavaScript (簡稱 JS) 是具有一級函數 (first-class functions) 的輕量級、直譯式程式語言。它因為用作網頁的腳本語言而大為知名,但也用於許多非瀏覽器的環境,像是 node.js、Apache 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,這個教學會帶你看看這個語言。
- JavaScript 技術概觀
- 介紹瀏覽器的 JavaScript。
- JavaScript 物件導向介紹
- 介紹 JavaScript 物件導向的概念。
中等
- 重新介紹 JavaScript
- 為了那些以為他們懂 JavaScript 的人寫的簡介。
- JavaScript 資料結構
- 簡介在 JavaScript 可用的資料結構。
- 比較
- JavaScript 提供了三種不同的數值比較方式:嚴謹的相等用
===,寬鬆的相等用==,以及Object.is()方法。
進階
- 繼承與原型鍊
- 對於原型繼承的常見的迷思和誤解。
- 嚴謹模式
- 嚴謹模式會禁止您使用未初始化過的變數。這樣的限制源自於 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 開發工具
- Scratchpad、Web Console、JavaScript Profiler、Debugger 等等。
- 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
- IRC: #js (learn more)
- ES discuss: esdiscuss.org
- SpiderMonkey: Project page
- Twitter: @SpiderMonkeyJS
文件標籤與貢獻者
標籤:
此頁面的貢獻者:
cwlin0416,
iigmir,
dolphinlin,
pa-da,
thomasaria,
jackblackevo,
mai7855,
Shiyou,
wildsky,
teoli,
steely.wing,
ethertank,
sycheng,
sailplaneTW,
linhomeyeu,
happysadman,
Mgjbot,
BobChao,
Kourge
最近更新:
cwlin0416,