JavaScript嚴格模式(use strict)
說明
對於小白們來說(也包括我)也可能都知道JavaScript的變數可以不用宣告就可以直接使用,但是在(ECMAScript5)中新增了嚴格模式,即JavaScript嚴格模式(strict
mode)即在嚴格的條件下執行。
支援嚴格模式的瀏覽器:Internet Explorer 10 +、 Firefox 4+ Chrome 13+、 Safari 5.1+、 Opera 12+。
為什麼使用嚴格模式
除了正常執行模式,ECMAscript 5添加了第二種執行模式:”嚴格模式”(strict mode)。顧名思義,這種模式使得Javascript在更嚴格的條件下執行。設立”嚴格模式”的目的,主要有以下幾個:
- 消除程式碼執行的一些不安全之處,保證程式碼執行的安全;
- 提高編譯器效率,增加執行速度;
- 為未來新版本的Javascript做好鋪墊。
- 消除javascript語法的一些不合理/不嚴謹指出,減少一些怪異行為;
“嚴格模式”體現了Javascript更合理、更安全、更嚴謹的發展方向,包括IE 10在內的主流瀏覽器,都已經支援它,許多大專案已經開始全面擁抱它。
另一方面,同樣的程式碼,在”嚴格模式”中,可能會有不一樣的執行結果;一些在”正常模式”下可以執行的語句,在”嚴格模式”下將不能執行。掌握這些內容,有助於更細緻深入地理解Javascript,讓你變成一個更好的程式設計師。
使用“use strict“指令
use strict簡介
“use strict “指令在JavaScript 1。9。5(ECMAScript5)中新增。
它不是一條語句,但是是一個字面量表達式,在JavaScript舊版本中會被忽略。 “use strict“的木的是制定程式碼在嚴格條件下執行。
嚴格模式下你不能使用未宣告的變數。
使用方式
“嚴格模式”有兩種呼叫方法,適用於不同的場合。
1。針對整個指令碼檔案
將”use strict”放在指令碼檔案的第一行,則整個指令碼都將以”嚴格模式”執行。如果這行語句不在第一行,則無效,整個指令碼以”正常模式”執行。如果不同模式的程式碼檔案合併成一個檔案,這一點需要特別注意。(嚴格地說,只要前面不是產生實際執行結果的語句,”use strict”可以不在第一行,比如直接跟在一個空的分號後面。)
eg:
<script>
"use strict";
console.log("這是嚴格模式。");
</script>
<script>
console.log("這是正常模式。");kly, it's almost 2 years ago now. I can admit it now - I run it on my school's network that has about 50 computers.
</script>
上面的程式碼表示,一個網頁中依次有兩段Javascript程式碼。前一個script標籤是嚴格模式,後一個不是。
2.針對單個函式
將”use strict”放在函式體的第一行,則整個函式以”嚴格模式”執行。
function strict(){
"use strict";
return "這是嚴格模式。";
}
function notStrict() {
return "這是正常模式。";
}