Javascript typeof如果不';不存在或不存在
我有这个密码Javascript typeof如果不';不存在或不存在,javascript,scope,Javascript,Scope,我有这个密码 if(typeof foo == "undefined"){ foo = "bar"; } 在全球范围内。 我知道当我们得到一个变量的引用时,解释器会检查它是否已经声明,如果没有,它会创建一个新的变量。 现在在这个示例代码中,表达式 typeof foo == "undefined" 将创建具有未定义值的foo 或 将创建变量foo?您只需在控制台中运行上述代码 它确实创建了全局foo=“bar”如果它是第一次运行,那么从已经创建foo的下一次开始,它就不满足条件 Ch
if(typeof foo == "undefined"){
foo = "bar";
}
在全球范围内。
我知道当我们得到一个变量的引用时,解释器会检查它是否已经声明,如果没有,它会创建一个新的变量。
现在在这个示例代码中,表达式
typeof foo == "undefined"
将创建具有未定义值的foo
或
将创建变量foo?您只需在控制台中运行上述代码 它确实创建了全局
foo=“bar”代码>如果它是第一次运行,那么从已经创建foo的下一次开始,它就不满足条件
Chrome控制台输出:
似乎typeof foo不会创建变量。@DragneelFPS:请检查是否确实定义了全局foo。如果是这样,它就不会运行了。第二次等等。我已经在控制台上对此进行了测试。是的,第一次创建了一个全局foo。连续迭代将使循环失败。但我的实际问题是,typeof foo
是否创建变量或not@DragneelFPS:typeof不创建新变量,但如果foo未定义,则foo=“bar”将创建新变量。
foo = "bar";
>if(typeof foo == "undefined"){
foo = "bar";
}
>"bar"