如果不存在,typeof会创建具有欠定值的新变量

时间:2018-01-22 16:26:32

标签: javascript scope

我有这段代码

if(typeof foo == "undefined"){
    foo = "bar";
}

在全球范围内。 我知道当我们获得对变量的引用时,解释器会检查它是否已经声明,如果没有,则会创建一个新变量。 现在在这个示例代码中,表达式

typeof foo == "undefined"

将使用 undefined 值创建 foo

    foo = "bar";

会创建变量 foo

1 个答案:

答案 0 :(得分:1)

您只需在控制台中运行上述代码,

即可

事实上,如果第一次运行它会创建全局foo = "bar";,从下一次创建foo以来它就不满足条件。

Chrome控制台输出:https://imgur.com/a/sXrDm

>if(typeof foo == "undefined"){
    foo = "bar";
}
>"bar"