use strict的最簡單做用html
嚴格規管語法函數
可使用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