<html> <head> <title>JavaScript Demo</title> <script src="run.js" type="text/javascript"></script> </head> <body> <input id="b" type="button" value="RUN" onclick="run();" /> <div id="content"></div> </body </html> <!-- 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:jsexample03.html 功能:示範 JavaScript 程式 作者:張凱慶 時間:西元 2010 年 11 月 -->
第 9 行
<input id="b" type="button" value="RUN" onclick="run();" />
<input /> 作為輸入的標籤 (tag) , type 屬性 (attribute) 標明這是一個 button ,也就是按鈕, onclick 屬性則讓使用者按下按鈕的動作與 JavaScript 程式產生關聯,屬性值 "run();" 表示呼叫 (call) 並且執行 run() 函數 (function) 。
函數是 JavaScript 中功能群組的單位,最簡單直接由瀏覽器 (browser) 顯示結果的程式不需要用到函數,但程式若要與 HTML 元素 (element) 有所互動,例如這個例子讓使用者按下按鈕,然後在瀏覽器中顯示訊息,這時候便需要定義所需的函數。事實上,函數在 JavaScript 中相當常用而且普遍。
我們來看看這個 run() 函數的定義,在檔案 run.js 中
function run() { var c = document.getElementById("content"); var n = document.createElement("p"); var message = "Hello, JavaScript!"; n.appendChild(document.createTextNode(message)); c.appendChild(n); } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:run.js 功能:示範 JavaScript 程式 作者:張凱慶 時間:西元 2010 年 11 月 */
第 1 行
function run() {
function 為 JavaScript 的關鍵字 (keyword) 之一,也是預設的保留字 (reserved word) ,表示其後的 run() 為函數名稱。函數名稱為自行命名的識別字 (identifier) ,隨後的小括弧可放置參數 (parameter) ,這是說可把數值以參數的型式交給函數進行計算,計算也是函數的重要功能之一。
第 1 行到第 7 行是用成對的大括弧圍起來的區域,這是函數定義的部份,函數的所有功能都在這裡定義,因此,這個例子中,當使用者按下 RUN 按鈕便是呼叫 run() 函數,瀏覽器便會執行 run() 函數中的五行程式碼。
第 2 行到第 4 行都有使用 var , var 也是 JavaScript 的關鍵字之一,表示其後的 c 、 n 、 message 為變數 (variable) ,變數名稱亦為自行命名的識別字。
第 2 行
var c = document.getElementById("content");
document 為 JavaScript 的 DOM 物件 (object) , DOM 表示文件物件模型 (document oject model) ,代表執行此 JavaScript 程式的 HTML 文件,可由 document 來存取文件中各個元素。常見瀏覽器都有支援此一文件物件模型,這是由 W3C 所推薦的標準。這一行的意思是由變數 c 取得 id 屬性為 content 的 HTML 元素控制權
第 3 行
var n = document.createElement("p");
這是由 document 物件新建一個 <p> 段落元素,由變數 n 保有控制權。
第 4 行
var message = "Hello, JavaScript!";
這是建立一個內容為 "Hello, JavaScript!" 字串 (string) 字面常數 (literal) 的物件變數 message 。
第 5 行
n.appendChild(document.createTextNode(message));
這是將 message 附加到 n 之中,也就是在 <p> 段落元素中加入文字。
第 6 行
c.appendChild(n);
這是將變數 n ,也就是 <p> 段落元素附加到 c 之中,由於 c 為 <div> 區塊元素,因此每按一次按鈕,就會增加一個含有 Hello, JavaScript! 字串的 <p> 段落元素。
先知道這個程式怎麼運作的就好,細節我們往後會再繼續討論。另外,注意 run() 中每一行都以分號 ; 結尾,這表示該行為陳述 (statement) ,陳述為程式依次執行的單位。
第 9 行以後
/* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:run.js 功能:示範 JavaScript 程式 作者:張凱慶 時間:西元 2010 年 11 月 */
利用 /* 到 */ 圍起來的地方,這是 JavaScript 提供的跨行註解 (comment) 方式。註解也可以是單行的,利用 // ,如
var message = "Hello, JavaScript!"; //建立印出訊息的變數
中英文術語對照 | |
---|---|
標籤 | tag |
屬性 | attribute |
函數 | function |
瀏覽器 | browser |
元素 | element |
關鍵字 | keyword |
保留字 | reserved word |
識別字 | identifier |
參數 | parameter |
物件 | object |
文件物件模型 | document oject model |
字串 | string |
字面常數 | literal |
陳述 | statement |
註解 | comment |
參考資料
http://www.ecma-international.org/publications/standards/Ecma-262.htm
http://www.w3schools.com/JS/js_statements.asp
http://www.w3schools.com/JS/js_comments.asp
http://www.w3schools.com/jsref/dom_obj_document.asp
http://www.w3.org/DOM/
http://www.ecma-international.org/publications/standards/Ecma-262.htm
http://www.w3schools.com/JS/js_statements.asp
http://www.w3schools.com/JS/js_comments.asp
http://www.w3schools.com/jsref/dom_obj_document.asp
http://www.w3.org/DOM/
2 則留言:
atribute -> attribute
這地方打錯字了,已修改,感謝指正 :)
張貼留言