小编Bra*_*ran的帖子

Javascript中的严格模式

我目前正在学习Javascript并遇到了"严格模式"一词.我知道它用于向编译器表明应该更严格地检查代码.然后我继续测试这个:首先我尝试了这个:

function test() {
    "use strict";
    a = 4;
    alert(a);
}
Run Code Online (Sandbox Code Playgroud)

我没有收到警报,并认为由于错误被抛出而非常合乎逻辑,因为未定义"a".然后我尝试了这个:

{
    "use strict";
    a = 4;
    alert(a);
}
Run Code Online (Sandbox Code Playgroud)

刷新页面后,显示警告"4".所以我的问题是什么时候严格的模式"工作",什么时候不是?

javascript

4
推荐指数
1
解决办法
55
查看次数

在Javascript中覆盖undefined和IIFE

我一直在阅读"你不知道Js"系列并且遇到了这个:

"此模式的另一个应用程序解决了(次要的利基)问题,即默认的未定义标识符可能会错误地覆盖其值,从而导致意外结果.通过命名参数undefined,但不传递该参数的任何值,我们可以保证未定义标识符实际上是代码块中的未定义值:"

    undefined = true; // setting a land-mine for other code! avoid!

(function IIFE( undefined ) {

    var a;
    if (a === undefined) {
        console.log( "Undefined is safe here!" );
    }

})();
Run Code Online (Sandbox Code Playgroud)

我不明白这里发生了什么.是未定义的数据类型还是仅仅是标识符以及此代码的工作原理?

谢谢.

javascript

1
推荐指数
1
解决办法
111
查看次数

标签 统计

javascript ×2