JavaScript是什麼?
 JavaScript是可以在網頁(HTML原始檔)中由瀏覽器直接執行的程式,最先是由網景公司(Netscape)發明,只因當時昇陽(Sun)公司也正在發展 Java,附和潮流稱為 JavaScript,事實上與Java語言沒有直接的關係。微軟公司在Netscape之後設計 IE 瀏覽器,原本使用VBscript(VB的簡化版)為附加程式語言,但因JavaScript已經盛行,也開發了類似JavaScript的語言版本稱為 JScript,兩者非常相似,一般仍以JavaScript一併稱呼。目前我們在微軟設計環境下使用的其實都是JScript。
Script的原意是『草稿』,通常用來形容簡化的程式語言,這類語言執行時多為逐解譯(interpret)成機械碼,一行一行執行,不是整個程式一次編譯(Compile)完成後執行。所以即使程式有錯誤,還是會先執行到錯誤之前的部份。

程式碼的位置
在HTML文件中JavaScript的程式須以:
<script language="javascript"> 程式碼 </script>
兩個標籤前後夾住。因為是瀏覽器中預設的程式語言,language那一項不寫也可以!
像這樣:
<script> 程式碼 </script>

這些程式碼可以插在<head>或<body>區塊,如果在<body>內基本上會依序執行;在<head>內則必須以函式(function)的方式寫作,由<body>內的物件呼叫使用。
如果是函式(function)的型態,即使寫在<body>內部也不會自動執行,必須被呼叫使用。
亦可寫成獨立的JS程式檔由主網頁檔叫用,如:
 
*.js 檔案是不包含<script>標籤的javascript程式碼,你可以在Web Developer中以『網站』→『加入新項目』的方式建立,或直接用其他純文字檔編輯器編輯。通常用於很多網頁都需要重複使用的程式碼。

第一個 JS 程式
1.開啟一個新網頁。
2.在<body>的區塊內寫程式如下:

3.執行預覽,或存檔之後用瀏覽器開啟,會看到網頁上顯示一個『Hello!』
4.請在輸出字串中加入HTML語法,如<H1>Hello!</H1>,或加入置中<center></center>。
如:document.write("<center>Hello!</center></br>Hi!")
你會發現我們可以用 javascript 『寫』出一整張網頁!事實上這是很多互動式網頁常做的事情。

文件物件模式(DOM)
要寫物件導向的程式首先當然必須先有物件可供操作,在ASP或C#,VB等程式中就是Label,TextBox,GRidView等等,有了物件接下來才有屬性(如Text),方法(如ToString)與事件(如MouseDown滑鼠按下)等等寫程式的依據;在網頁中看起來有很多『東西』,大部分都可以被 javascript 叫用,但是要呼叫它們進入程式運作前必須了解它們的整體架構,以及一些預設的物件名稱,這些規則稱為 Document Object Model (DOM),目前只簡單介紹三個層級:

Window就是瀏覽器視窗,這個物件有很多的屬性方法與事件可以使用,請試試以下的程式(用<script></script>包覆):
window.alert("!")   //訊息
window.status="Hello!"  //狀態列
window.open("http://ycc.dwu.edu.tw");  //開新視窗
window.moveTo(0,0); //移動視窗
Document就是網頁,瀏覽器是鏡框,網頁就是相片,請注意到它們的不同之處,試試看下面的幾個程式碼:
document.writeln(document.location);  //顯示網址
document.bgColor="green";  //設定背景色
document.writeln(document.defaultCharset);  //顯示編碼
Objects就是網頁內部的物件了,先作以下的一個實驗:
1.開啟一個網站,加入一張HTML網頁
2.佈置一個TextBox物件
3.原始碼修改如下:會看到文字盒內出現文字"123"

說明:
A.在此的文字盒與ASP的文字盒不同,不能用VB(伺服端)程式控制,Text1.value="123"是javascript
B.文字盒、按鍵或選項等等物件在此都是以 input 作標示,用 type=?? 來區分。
C.呼叫使用時必須用 id 屬性,相當於VB程式中的 name 屬性。

JS 的數學運算(事件副程式的寫作)
javascript與一般程式語言很像,可以做運算,也有按鍵、文字盒與標籤等等物件,在我們使用的Web Developer軟體內都有支援,只是必須分清楚它們都是『客戶端』的物件,程式事實上是在HTML內,也就是在客戶的瀏覽器內執行,與之前我們用ASP做的程式不同,一樣是Button_Click事件,ASP程式是在伺服端作好再傳給網頁,javascript自己在客戶端就搞定了。
步驟:
1.用Web Developer開啟一個專案,加入一個HTML網頁。
2.至工具箱選用一個 Input(Text) 與一個 Input(Button) ....都叫作 Input比較特別。
3.雙擊Button會切換到原始碼畫面,並出現事件副程式框架,寫入程式如下:

一個簡單的數字平方計算程式就完成了!
說明:parseFloat是將文字轉成有小數點的實數

要做一個完整的加法介面稍微麻煩一點:
1.首先建立如下介面

4.等號按鍵寫程式碼如下:

說明:(a) var是變數,可以是字串或數值;(b)toFixed(n)表示n位小數的數字。
練習題:製作一個 javascript 的四則運算網頁。

Radio 單一選項程式
1.在HTML網頁佈置單選物件兩個 Radio,一個 Iimage 如下:

2.寫程式如下:

說明:
A.選擇 Radio1 或 Radio2 時分別將 id = "img0" 的影像物件來源(src)定為網路上的一張圖的網址。
B. img 的 id 必須手動寫入,不是預設值。
C. onclick 對應的事件也一樣。

其他互動物件
javascript 的特性之一是程式碼是完全公開的,所以開啟網頁後檢視原始碼即可看到程式,下面是一個網頁連結,展示許多互動物件,就去看看它們的程式怎麼寫的吧!記住他們都只是HTML,不是ASP網頁哦!
http://ycc.dwu.edu.tw/S2/RadioCheck.htm

鍵盤事件
JS也可以回應鍵盤或滑鼠事件,下面是一個用鍵盤的上下左右鍵移動視窗的小程式

說明:
1. document.onkeydown=keyfunction表示當網頁(document)上面有鍵盤事件(keydown)時交給函式 keyfunction處理。
2. Text1.value=event.keyCode 顯示出你按下鍵盤的鍵盤碼(keyCode)
3. swith ( ) 選擇式依據你按的鍵盤移動視窗→ window.moveBy(x,y)

滑鼠事件(位置)
下面是一個顯示滑鼠位置的程式:
1.佈置物件如下,黃色部份是一個圖層(div)物件,改變背景顏色作為滑鼠移動偵測的區域。
注意:網頁中沒有物件的區域是無法偵測滑鼠位置的。

2.程式碼如下:

JS 小時鐘
1.開啟另一個網頁(HTML)佈置如上範例的一個Text1與 Button1
2.在Button1事件寫程式如下:

3.執行網頁按一下按鍵,可以看到一個小時鐘在Text1中跑。
這是一個遞迴的程式,執行一個顯示時間的動作之後,設定一秒鐘後時間到再執行一次
4.將上述程式的名稱改掉,變成 JSclock()

5.在<body>標籤內加入指令→ <body onload=JSclock()>
這個網頁會一開始就自動執行小時鐘。