正確使用「use strict」

use strict的最簡單做用html

  1. 嚴格規管語法函數

  2. 可使用ES6的功能(2015.10)測試


第一點能夠詳細看 這裏 http://www.haomou.net/2014/09/19/2014_js2/spa

嚴格模式概念.net

若是給JavaScript代碼標誌爲「嚴格模式」,則其中運行的全部代碼都必然是嚴格模式下的。code

其一:若是在語法檢測時發現語法問題,則整個代碼塊失效,並致使一個語法異常。htm

其二:若是在運行期出現了違反嚴格模式的代碼,則拋出執行異常。blog


注:通過測試IE6,7,8,9均不支持嚴格模式。ip

JavaScript代碼「嚴格模式」使用方法:字符串

嚴格模式須要使用字符串序列:

「use strict」

在以下位置加入能夠開啓相應代碼塊中的嚴格模式:

1.必須在全局代碼的開始處加入。

2.在eval代碼開始處加入。

3.在函數聲明代碼開始處加入。

4.在new Function()所傳入的body參數塊開始加入。


例1:

var num =012;
alert(num);

在非嚴格模式下,可使用0(零)開頭前綴聲明8進制。顯示10。

可是在嚴格模式下,會產生錯誤。

"use strict";
var num =012;
alert(num);

測試結果:

IE6,7,8,9均顯示10。

FF報錯:octal literals and octal escape sequences are deprecated

Chrome報錯:Uncaught SyntaxError: Octal literals are not allowed in strict mode.

Opera報錯:Syntax error at line 3 while loading: Invalid character var num = 012;


若是使用嚴格模式,除了0(零)開頭前綴8進制之外還有:

1.在代碼中不能使用一些擴展的保留字:

implements,interface,let,package,private,public,static,yield

2.with語句也不能使用。

3.不能聲明或重寫eval和arguments兩個標識符。

4.不能用delete 刪除顯式聲明的標識符,名稱或具名函數。


使用注意


「use strict」; 被放在一個 JavaScript 文件或函數的起始位置時 (script 標籤中,必須出如今其餘非指令序言指令的語句前面),才能夠開啓嚴格模式。


一般實踐推薦在全部的函數 (或者全部最外層函數) 的開始處加入 「use strict」; 指令啓動嚴格模式,而毫不推薦在文件的開頭處寫全局 「use strict」 - 相反,這時一些 ES 校驗器會給出警告。


全局 「use strict」 爲何很差? 一個重要的緣由就是文件合併時,一些文件用了嚴格模式,而另外一些沒有。這時這些原本是嚴格模式的文件,被 merge 後,這個串就到了文件的中間,不只沒有指示嚴格模式,反而在壓縮後浪費了字節。


ECMA262 Edition5. 嚴格模式(Strict Mode) 參考:http://www.cnblogs.com/_franky/archive/2012/01/05/2184461.html

相關文章
相關標籤/搜索