aboutsummaryrefslogtreecommitdiff
path: root/files/zh-tw/web/javascript/index.html
blob: 4eca0ea3906f63c0ea66c40c48b53f9381c46876 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
---
title: JavaScript
slug: Web/JavaScript
tags:
  - JavaScript
  - 入口
  - 學習
  - 所有類別
translation_of: Web/JavaScript
---
<p>{{JsSidebar}}</p>

<div class="summary">
<p><strong>JavaScript</strong> (簡稱 <strong>JS</strong>) 是具有一級函數 ({{Glossary("First-class Function", "First-class functions")}}) 的輕量級、直譯式或即時編譯(JIT-compiled)的程式語言。它因為用作網頁的腳本語言而大為知名,但也用於<a class="external" href="http://en.wikipedia.org/wiki/JavaScript#Uses_outside_web_pages">許多非瀏覽器的環境</a>,像是 <a class="external" href="http://nodejs.org/">node.js</a><a href="http://couchdb.apache.org">Apache CouchDB</a>。JavaScript 是一個基於原型的 ({{Glossary("Prototype-based programming", "Prototype-based")}})、多範型的、動態語言,支援物件導向、指令式以及宣告式 (如函數式程式設計) 風格。 閱讀<a href="/zh-TW/docs/Web/JavaScript/About_JavaScript" title="關於 JavaScript">關於 JavaScript</a> 以取得更多資訊。</p>
</div>

<div>
<p>本章節主要說明 JavaScript,不涉及網頁特有項目或主機環境。有關網頁特有的 {{Glossary("API","APIs")}} ,請參考 <a href="https://developer.mozilla.org/zh-TW/docs/Web/API">Web API</a><a href="https://developer.mozilla.org/zh-TW/docs/Glossary/DOM">DOM</a></p>

<p>JavaScript 所採用的標準是 <a href="/docs/JavaScript/Language_Resources">ECMAScript</a>,自 2012 年起,所有<a href="http://kangax.github.io/compat-table/es5/">現代的瀏覽器</a>均已全面支援 ECMAScript 5.1。較老舊的瀏覽器最少也會支援 ECMAScript 3。<a href="http://www.ecma-international.org/">ECMA International</a> 於 2015 年 6 月 17 日發布第六版的 ECMAScript,其正式名稱是 ECMAScript 2015,原先被稱作 ECMAScript 6 或 ES6。從那時起, ECMAScript 標準的發布週期是一年,本文件參考了最新的草稿版本,也就是目前的 <a href="http://tc39.github.io/ecma262/">ECMAScript 2017</a></p>

<p>別搞混了 JavaScript 和 <a href="https://en.wikipedia.org/wiki/Java_(programming_language)">Java 程式語言</a>。雖然 "Java" 和 "JavaScript" 都是 Oracle 公司在美國和其他國家的商標或註冊商標,但兩個語言有著非常不同的語法、語意和用途。</p>
</div>

<div class="column-container">
<div class="column-half">
<h2 id="教學">教學</h2>

<p>透過指南和教學來學習編寫 JavaScript。</p>

<h3 id="給完全新手">給完全新手</h3>

<p>如果你想學習 JavaScript 但過去沒有 JavaScript 或程式設計經驗,請前往 <a href="https://developer.mozilla.org/zh-TW/docs/Learn/JavaScript">JavaScrip-動態的用戶端指令</a>。該處完整單元如下:</p>

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

<h3 id="JavaScript_指南">JavaScript 指南</h3>

<dl>
 <dt></dt>
 <dt><a href="https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Guide">JavaScript 指南</a></dt>
 <dd>更為詳細的 JavaScript 語言指南,供過去有 JavaScript 或其他語言的程式設計經驗的人看。</dd>
</dl>

<dl>
</dl>

<h3 id="中階">中階</h3>

<dl>
 <dt><a href="/zh-TW/docs/Learn/JavaScript/Client-side_web_APIs">客戶端 web APIs</a></dt>
 <dd>在為網站或應用程序編寫客戶端JavaScript時,您將很快遇到應用程式介面(API)。 API是應用程式介面,用於操作運行站點的瀏覽器和操作系統的不同方面,或操縱來自其他網站或服務的資料。 在本單元中,我們將探討API是什麼,以及如何使用您在開發工作中經常遇到的一些最常見的API。 </dd>
</dl>

<dl>
 <dt><a href="https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/A_re-introduction_to_JavaScript">重新介紹 JavaScript</a></dt>
 <dd>為了那些<em>以為</em>他們懂 JavaScript 的人寫的簡介。</dd>
</dl>

<dl>
 <dt><a href="https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Data_structures">JavaScript 資料結構</a></dt>
 <dd>簡介在 JavaScript 可用的資料結構。</dd>
 <dt><a href="/zh-TW/docs/Web/JavaScript/Equality_comparisons_and_sameness">相等值比較和相等度</a></dt>
 <dd>JavaScript 提供了三種不同的數值比較方式:嚴謹的相等用 <code>===</code>,寬鬆的相等用 <code>==,</code>以及 {{jsxref("Global_Objects/Object/is", "Object.is()")}} 方法。</dd>
 <dt><a href="/zh-TW/docs/Web/JavaScript/Closures">閉包(Closure)</a></dt>
 <dd>
 <p>閉包(Closure)是函式以及該宣告函式所包含的作用域環境(lexical environment)的組合。</p>
 </dd>
</dl>

<h3 id="進階">進階</h3>

<dl>
 <dt><a href="/zh-TW/docs/Web/JavaScript/Inheritance_and_the_prototype_chain">繼承與原型鍊</a></dt>
 <dd>對於原型繼承的常見的迷思和誤解。</dd>
 <dt><a href="/zh-TW/docs/Web/JavaScript/Reference/Strict_mode">嚴謹模式</a></dt>
 <dd>嚴謹模式會禁止您使用未初始化過的變數。這樣的限制源自於 ECMAScript 5 的規範,為了提高效率和簡化偵錯。</dd>
 <dt><a href="https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Typed_arrays">JavaScript 型別陣列</a></dt>
 <dd>JavaScript 類型陣列提供一個存取二進制資料的機制。</dd>
 <dt><a href="https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Memory_Management">記憶體管理</a></dt>
 <dd>JavaScript 的記憶體生命週期和垃圾回收機制。</dd>
 <dt><a href="/zh-TW/docs/Web/JavaScript/EventLoop">併行模組和事件循環</a></dt>
 <dd>JavaScript 具有基於「事件循環」的併行模組。</dd>
</dl>
</div>

<div class="column-half">
<h2 id="參考">參考</h2>

<p>瀏覽完整的 <a href="/zh-TW/docs/Web/JavaScript/Reference">JavaScript 參考文件</a></p>

<dl>
 <dt><a href="/zh-TW/docs/Web/JavaScript/Reference/Global_Objects">標準內建物件</a></dt>
 <dd>瞭解標準內建物件: {{jsxref("Array")}}{{jsxref("Boolean")}}{{jsxref("Date")}}{{jsxref("Error")}}{{jsxref("Function")}}{{jsxref("JSON")}}{{jsxref("Math")}}{{jsxref("Number")}}{{jsxref("Object")}}{{jsxref("RegExp")}}{{jsxref("String")}}{{jsxref("Map")}}{{jsxref("Set")}}{{jsxref("WeakMap")}}{{jsxref("WeakSet")}} 等等。</dd>
 <dt><a href="/zh-TW/docs/Web/JavaScript/Reference/Operators">表式法與運算子</a></dt>
 <dd>瞭解更多 JavaScript 運算子的行為:{{jsxref("Operators/instanceof", "instanceof")}}{{jsxref("Operators/typeof", "typeof")}}{{jsxref("Operators/new", "new")}}{{jsxref("Operators/this", "this")}}<a href="/zh-TW/docs/Web/JavaScript/Reference/Operators/Operator_Precedence">運算子優先序</a>等等。</dd>
 <dt><a href="/zh-TW/docs/Web/JavaScript/Reference/Statements">敘述和宣告</a></dt>
 <dd>瞭解 {{jsxref("Statements/do...while", "do-while")}}{{jsxref("Statements/for...in", "for-in")}}、 {{jsxref("Statements/for...of", "for-of")}}、 {{jsxref("Statements/try...catch", "try-catch")}}{{jsxref("Statements/let", "let")}}、 {{jsxref("Statements/var", "var")}}、 {{jsxref("Statements/const", "const")}}、 {{jsxref("Statements/if...else", "if-else")}}、 {{jsxref("Statements/switch", "switch")}} 和其他 JavaScript 敘述和關鍵字的運作方式。</dd>
 <dt><a href="/zh-TW/docs/Web/JavaScript/Reference/Functions">函數</a></dt>
 <dd>瞭解如何運用函數來開發你的應用程式。</dd>
</dl>

<h2 id="工具與資源">工具與資源</h2>

<p>有用的工具和資源幫助你更好的撰寫及除錯 <strong>JavaScript </strong> 程式碼。</p>

<dl>
 <dt><a href="/zh-TW/docs/Tools">Firefox 開發工具</a></dt>
 <dd><a href="/zh-TW/docs/Tools/Scratchpad">程式碼速記本 (Scratchpad)</a><a href="/zh-TW/docs/Tools/Web_Console">網頁主控台 (Web Console)</a><a href="/zh-TW/docs/Tools/Profiler">JavaScript 效能分析器(JavaScript Profiler)</a><a href="/zh-TW/docs/Tools/Debugger">除錯器 (Debugger)</a> 等等。</dd>
 <dt><a href="/zh-TW/docs/Web/JavaScript/Shells">JavaScript Shell</a></dt>
 <dd>JavaScript Shell 讓你更快的測試片段的 JavaScript。</dd>
 <dt><a href="https://togetherjs.com/">TogetherJS</a><a id="cke_60" title="Paste">Paste</a></dt>
 <dd>合作更簡單了。藉著在你的網站增加 TogetherJS,你的用戶們能在網站上互助 in real time!</dd>
 <dt><a href="http://stackoverflow.com/questions/tagged/javascript">Stack Overflow</a></dt>
 <dd>Stack Overflow 上有關 JavaScript 的問題。</dd>
 <dt><a href="/zh-TW/docs/Web/JavaScript/New_in_JavaScript">JavaScript 版本和發行說明</a></dt>
 <dd>瀏覽 JavaScript 的功能歷史和兼容狀態。</dd>
 <dt><a href="https://jsfiddle.net/">JSFiddle</a></dt>
 <dd>編輯 JavaScript、CSS、HTML 並取得及時結果。可以使用外部資源和與在線上與你的夥伴協作。</dd>
</dl>
</div>
</div>

<div id="gtx-trans" style="position: absolute; left: 162px; top: 722px;">
<div class="gtx-trans-icon"></div>
</div>