JavaScript是一種物件導向程式碼語言,網景通訊公司(Netscape)最初在它的Netscape
Navigator 2.0產品上設計並實現,原名LiveScript,目前已經在網際網路上廣泛運用於動態網頁的編程語言。
JavaScript程式由ASCII的字元來構成,可利用記事本等文書編輯軟體來開發完成;一般程式語言必須經過編譯之手續,才能執行程式,但JavaScript並不需經過編譯手續,它只要透過適當的直譯器 (browser)即可轉譯並執行。
JavaScript並不是Java
JavaScript不是JScript:
微軟推出了JScript來迎戰JavaScript的描述語言,除了和JavaScript的應用範圍相似之外,兩者是完全不相干的。
JavaScript 是一種物件導向
(object-based) 的程式語言:
程式設計時,將網頁上所有的元素視為物件 (object),
以執行方法 (method)來描述該物件之動作,以屬性 (attribute) 來描述該物件的樣子。
JavaScript 的基本語法形式為:
| object.method(value) | 物件.方法(參數) |
| object.attribute=value | 物件.屬性=屬性值 |
| object.event=JavaScriptCode | 物件.事件=當事件發生時要執行的程式 |
| object 是指物件 | 可以是文件 (document)、視窗 (window)、變數 (var)、數學運算 (math)、字串 (string)、圖片 (picture)、影像 (video)、聲音 (sound)、表單 (form) ...等。 |
| method 是方法是指令動作 | 可以是開啟 (open)、關閉 (close)、撰寫 (write) ...等。 |
| value 是輸入指定的值 | 可以是字串、數值、變數...等。 |
| 例如:window.open(),意思是開啟視窗,window視窗是物件,open()開啟是執行的方法 |
| 例如:document.write(),意思是在文件中輸出顯示,document文件是物件,write()輸出是執行的方法 |
JavaScrip的程式碼必須被包在<script>及</script>標籤之間。例:
| <script type="text/javascript"> JavaScript 程式碼 ... ... </script> |
第一:寫在<head></head>之間,好處是可以保證在載入<body>內容之前已經先載入的。
第二:寫在<body></body>範圍間,當你要用JavaScript顯示物件到<body>指定範圍內時會用到。
第三:寫在</html>之後,目的是不影響<html>範圍的內容,
可能會用在一般網頁供應商在網頁要加入廣告窗 (pop-up window) 或其他效果。
程式範例參考:
| <html> <head> <script type="text/javascript"> alert("Hello!"); </script> </head> <body> <script type="text/javascript"> document.write("Happy Day!"); </script> </body> </html> |
兩種於JavaScript中加入程式註解的方式:
第一種:使用雙斜線 // 來作單行註解( //右邊的東西都是註解)
第二種:使用 /*和 */ 來作多行註解(所有放在 /*及 */ 範圍內的東西都是註解)
如何讓不支援JavaScript的舊瀏覽器跳過程式碼:
| <SCRIPT
LANGUAGE="JavaScript"> <!-- document.write("Hello World!") //--> </SCRIPT> |
在兩個原因下瀏覽器不能夠執行JavaScript: 第一是舊的瀏覽器無法辨識JavaScript,第二就是使用者關閉了JavaScript功能。這時瀏覽器就會顯示<noscript> 範圍內的內容,讓網頁瀏覽者知道該網頁有些內容不能如常運作。
| <NOSCRIPT> 當 JavaScript 無法正常顯示時,使用NOSCRIPT標籤可以顯示NOSCRIPT標籤中的內容。 </NOSCRIPT> |
單一宣告變數的方式:
var name;
var student_name = "Tom";
var student_age = 16;
多變數同時宣告的方式 :
var name, sex, student_age;
JavaScript 的命名法則:
常見的 JavaScript 的保留字如下:
保留字 A-E |
保留字 E-I |
保留字 J-S |
保留字 T-Z |
| Abstracr | else | long | this |
| boolean | enum export | lastModified | throw |
| break | Extends | Native | throws |
| byte | false | new | transient |
| Case | final | null | true |
| catch | finally | package | try |
| char | Float | private | var |
| class | for | protected | Void |
| Const | function | public | volatile |
| continue | go to | return | while |
| Date | If | Short | with |
| deburgger | implement | static | |
| default | import | super | |
| delete do | in | switch | |
| double | instanceof | synchronized | |
| int | |||
| interface |
資料的型態 (Data Type) :
| 資料型態 | 例子 | 說明 |
|---|---|---|
| 字串 (String) | var name = "Tom"; var model = "1001"; |
字串通常是用雙引號 (") 或單引號(')括著 |
| 數值 (Number) | var age = 16; var pi = 3.141592653589793; var expo = 54e7; var octal_num = 010; var hex_num = 0x10; |
數目可以是實數和整數 整數包括10 進制、8 進制和 16 進制 數目前面是 0 代表 8 進制 數目前面是 0x 代表 16 進制 |
| 布林 (Boolean) | var is_enabled = true; var ie3 = false; |
布林資料只有兩個值, 就是 true 或 false |
| 空白 (Null) | var no_content; | 資料沒有內容,就等於 null |
| 物件 (Object) | var dw = document.write; var myname = document.myform.myname; |
通常是為了方便而定義物件變數, 例如可以用 dw 代替 documen.write, 那就不用打很多字了 |
| 陣列 (Array) | var even_num = new Array(2,4,6,8,10); var fruit = new Array("apple","orange"); |
陣列是用來儲存一組相同型態的資料 |
區域變數(Local Variable)與全域變數(Global Variable)的觀念:
看看以下範例:
var x = 10; // 宣告變數並指定值,這個變數名稱為全域變數,在整個JavaScript執行期間所有區域都可引用 function some() { var y = 20; // 在function內宣告的是區域變數,「區域」外不可引用 x = 30; // 這裡直接使用 x ,而不是重新宣告,所以用的是前面宣告的全域變數 } alert(x); // 在這裡讀取的 x 得到 10 some(); // 執行some函式 alert(x); // 在這裡讀取的 x 得到 30 //如果全域變數與區域變數同名,則區域變數會覆蓋全域變數,例如: var A = 100; function some() { var A = 200; // 這裡宣告的是區域變數 alert(A); // 因此在這個function內使用的是區域變數A得到的結果顯示200 } some(); alert(x); // 在function區域外使用的是全域變數A得到的結果顯示100 // 當您在JavaScript中宣告了一個變數,您可以使用delete將刪除,例如: x = 10; // 宣告x並指定值 delete x; // 刪除x alert(x); // x |
陣列 (Array) :
陣列是用來儲存多個資料。陣列內的資料稱為該陣列的元素 (elements),陣列內的資料數目就稱為該陣列的長度 (length)。
只宣告一個陣列的名稱, 但不指定它的內容: |
陣列內資料的表示方式:
|
陣列長度的表示方式:
|
JavaScript的物件層次圖,每個長方形代表一個物件

方法 (Method):
用來做一些與該物件有關的動作,例如 document.write( ),write是document的方法
屬性 (Property):
用來取得該物件的屬性或資訊,也可以設定某些屬性的內容。例如document.bgColor ,bgColor 是document的屬性,所以這一句的內容就是該 document的背景顏色,你也可以設定它的內容來改變背景顏色,例如document.bgColor="red",這段程式碼會把該頁的背景顏色轉為紅色。
5. JavaScript常用的運算子1.算術運算子 (Arithmetic Operators)
2.字串運算子 (String Operators)
3.邏輯運算元 (Logical Operators)
6.比較運算子 (Comparison Operators)
6. JavaScript的函數
7. JavaScript的事件事件 (Event) 事件是由系統轉化使用者的動作或系統訊息而得來的。使用者的動作例子包括:按下滑鼠鍵、確定送出表單...等。 在一個網頁內,事件通常是指由瀏覽器所偵測到使用者的特定動作,瀏覽器可以根據所偵測到的事件,來進行相關動作。舉例來說,使用者點選或移動滑鼠,或是瀏覽器的載入網頁,都可以看成是事件的產生。對於特定的事件,我們可以在瀏覽器內偵測得之,並以特定的程式來對此事件做出反應,此程式即稱為「事件處理器」(Event handlers),又稱為 Callback。
8. JavaScript的流程控制流程控制 (Flow Control) 一個程式未必一定要由上到下執行的,我們可以跟據一些條件來控制一個程式執行那一個部份,亦即是控制它的流程。 流程控制有以下幾種敘述: .if if 語法:
if...else 語法:
for 語法:
while 語法:
|