JavaScript 嚴格模式

除了正常運行模式以外,ECMAScript5還引入了第二種運行模式:嚴格模式(strict mode)模式。嚴格模式是爲了JavaScript定義了一種不一樣的解析與執行模型。在嚴格模式下,ECMASript3中的一些不肯定的行爲將獲得處理,並且對某些不安全的操做也會拋出錯誤。java

引入嚴格模式的目的:瀏覽器

1.消除JavaScript語法的一些不合理,不規範,不嚴謹之處,減小一些怪異行爲;

2.消除一些不肯定的行爲,保證代碼運行的安全;

3.提升編譯器效率,增長運行速度;

4.爲將來新版本的Javascript作好鋪墊。

在嚴格模式下,JavaScript的執行執行結果會有很大的不一樣,支持嚴格模式的瀏覽器包括:安全

IE10+,Firefox4+,Safari5.1+,Opera12+和Chrome。

若是想要在整個腳本啓用嚴格模式,能夠在頂部添加以下代碼:函數

「use strict」

這行代碼看起來更新是字符串,並且也沒有賦值給任何變量,但其實它是一個編譯指示(pragma),用於告訴支持的JavaScript引擎切換到嚴格模式,這是爲了避免破壞ECMASript3語法而特地選定的語法。

須要注意的一點是將「use strict「腳本文件必需要放在第一行,則整個腳本文件都以」use strict「嚴格模式運行,假如」use strict「不在第一行,則不在運行嚴格模式,在這樣的狀況下,整個腳本都以」正常模式運行「。若是你沒有控制頁面中全部腳本的權力,建議只在須要測試的特定函數中開啓嚴格模式。

如何調用javaScript嚴格模式測試

"嚴格模式"有兩種調用方法,使用於不一樣的場合code

1.針對整個腳本文件

<script>
    "use strict"
    console.log("這是嚴格模式")
</script>

<script>
console.log("這是正常模式")
</script>

2.針對單個函數

將"use strict"放在函數體的第一行,則整個函數以"嚴格模式"運行。

function strict(){
    "use strict";
    return "這是嚴格模式。";
}
function notStrict() {
    return "這是正常模式。";
}

3.腳本文件的變通寫法

由於第一種調用方法不利於文件合併,因此更好的作法是,借用第二種方法,將整個腳本文件放在一個當即執行的匿名函數之中。

(function (){
    "use strict";
    // some code here
})();

全局變量顯式聲明ip

在正常模式中,若是一個變量沒有聲明就賦值,默認是全局變量。嚴格模式禁止這種用法,全局變量必須顯式聲明。

"use strict";
 v = 1; // 報錯,v未聲明
for(i = 0; i < 2; i++) { 
    // 報錯,i未聲明
}

所以,嚴格模式下,變量都必須先用var命令聲明,而後再使用。
相關文章
相關標籤/搜索