如何使用:
- 全局模式:
使用es5.0嚴(yán)格模式的前提丈攒,是在js的邏輯的最頂端 使用字符串的 “use strict";
- 局部模式:
局部的嚴(yán)格模式(在局部的邏輯最頂端使用 "use strict";)啄糙,第二種方式比較靈活(推薦)。
es5.0嚴(yán)格模式:不再兼容es3.0的一些不規(guī)范語法代嗤,使用全新的es5.0規(guī)范菱农。
好處
- 消除js語法的不合理性、不嚴(yán)謹(jǐn)之處。
- 提高代碼運(yùn)行的安全性歧譬。
- 提高編譯器效率岸浑,增加運(yùn)行速度。
嚴(yán)格模式與標(biāo)準(zhǔn)模式的區(qū)別:
- 嚴(yán)格模式下 隱式聲明或定義變量 被禁止
- 嚴(yán)格模式下 對象重名的屬性 在嚴(yán)格模式下被禁止
- 嚴(yán)格模式下 arguments.callee() 被禁用
- 嚴(yán)格模式下 with() 語句
- 嚴(yán)格模式下禁止 this關(guān)鍵字指向全局對象 瑰步。
- 函數(shù)生命必須在最頂層
- 新增關(guān)鍵字/保留字:
* implements矢洲、interface、let缩焦、package读虏、private、protected袁滥、public盖桥、yield. - 更多限制
1)with
with 非常強(qiáng)大,可以指定with(){} 后面的括號里要執(zhí)行的代碼體的最直接執(zhí)行期上下文题翻。
例如:
var obj = {
name : "a"
};
var name = "B";
function c(){
var name = "C";
console.log(name); //正常情況下ao為函數(shù)c揩徊,所以應(yīng)該打印 C,下面使用 with方法
with(obj){
console.log(name) //結(jié)果是 a 這時先查找的作用域是obj嵌赠,如果obj內(nèi)沒有要使用的塑荒,才去沿著作用域鏈找!
}
}姜挺;