被人問起一個問題: 複製程式碼 程式碼如下: <br /> <script type="text/javascript"><br /> <script><br /> 這三個標籤的使用有什麼不同? 雖然一直在用,卻也沒有好好去弄清楚,這裡詳細說明一下。 查閱一些資料,主要是瀏覽器支援問題。 type 和 language 屬性都可用於指定 標籤中的腳本的類型。 language 屬性在 HTML 和 XHTML 標準中受到了非議,這兩個標準提倡使用 type 屬性。遺憾的是,這兩個屬性的值是不一樣的。 您可能偶爾會看見 language 的值為 VBScript(對 type 而言是 text/vbscript),表示包含的腳本程式碼是用 Microsoft 的 Visual Basic Script 編寫的。 利用 JavaScript,您也可以使用 language 的值 "JavaScript 1.1",表示包含的腳本語句只能被 Netscape 3.0 或更新的版本處理。 Netscape 2.0 只支援 JavaScript 1.0,無法處理標示為 "JavaScript 1.1" 的腳本。 為了確保腳本程式可以正常執行,除非特意使用僅IE 支援的VBScript 和Script Encoder 機制外,應將SCRIPT 標記的"type" 屬性設為"javascript",並且不要設定已經廢棄的"Languange" 屬性。 各瀏覽器對於 "type" 和 "language" 屬性本身均支持,但是對於其中設定的腳本語言類型識別與支持各異: "type" 和 "language" 同時存在時,所有瀏覽器優先識別 "type" 屬性內的腳本類型; 其中 IE 瀏覽器實際支援 JScript 和 VBScript 腳本語言標示以及 Script Encoder 加密; Firefox Chrome Safari Opera 對 "type" 屬性值的具體辨識寬容度不一致,相對 Chrome Safari 對屬性值正確性校驗更加寬鬆,Firefox 的校驗最為嚴格; 在 "Language" 屬性值辨識寬容度比較中,各瀏覽器中 Chrome Safari 依然最為寬鬆,IE 最為嚴格,Firefox 與 Opera 持平; Language Encode 比較中,只有 IE 支援 JScript.Encoder 以及 VBScript.Encoder 類型設置,Firefox Chrome Safari皆不支持,Opera 中則是該屬性值被修復為預設的 Javascript 腳本語言後才有輸出值。 複製程式碼 程式碼如下: <br /> function a() {<br /> b = "a";<br /> }<br /> a();<br /> alert(b);<br /> 關於變數有一個問題,即使你在函數內如同上面那樣宣告變量,它就會變成全域變數。 如果用 var 聲明就會有一個問題。 複製程式碼 程式碼如下: <br /> function a() {<br /> var b = "a";<br /> delete b;<br /> alert(b);<br /> }<br /> a();<br /> 結果還是會彈出a。 為了確保腳本程式可以正常執行,除非刻意使用僅IE 支援的VBScript 和Script Encoder 機制外,應將SCRIPT 標記的"type" 屬性設為"javascript",並且不要設定已經廢棄的"Languange" 屬性。