「use strict"是ECMAScript 5引入的一條指令。
指令不是語句(但很是接近於語句)。「usestrict"指令和普通的語句之間有兩個重要的區別:前端
使用「use strict" 指令的目的是說明(腳本或函數中)後續的代碼將會解析爲嚴格代碼(strict code)。若是頂層(不在任何函數內的)代碼使用了「use strict" 指令,那麼它們就是嚴格代碼。若是函數體定義所處的代碼是嚴格代碼或者函數體使用了「use strict"指令,那麼函數體的代碼也是嚴格代碼。若是eva1()調用時所處的代碼是嚴格代碼或者eval()要執行的字符串中使用了「scrict code」指令,則eval()內的代碼是嚴格代碼。數組
嚴格代碼以嚴格模式執行。ECMAScript 5中的嚴格模式是該語言的一個受限制的子集,它修正了語言的重要缺陷,並提供健壯的查錯功能和加強的安全機制。
嚴格模式和非嚴格模式之間的區別以下(前三條尤其重要) :安全
在嚴格模式中,調用的函數(不是方法)中的一個this值是undefined。(在非嚴格模式中,調用的函數中的this值老是全局對象)。能夠利用這種特性來判斷JavaScript實現是否支持嚴格模式:app
var hasstrictMode = (function() { "use strict"; return this==undefined}());
我是Cloudy,年輕的前端攻城獅一枚,愛專研,愛技術,愛分享。
我的筆記,整理不易,感謝閱讀、點贊和收藏。
文章有任何問題歡迎你們指出,也歡迎你們一塊兒交流前端各類問題!