为什么在Javascript声明变量时添加var关键字
在Javascript中,var用于声明变量,但是这种语法并不是严格要求的。很多时候,我们可以直接使用一个变量而不是VaR来声明它。复制代码代码如下所示:
var;
yxxx;
所以在u3002this是一个问题,例如在代码行中声明的变量x,我想用结果打字或拼写错误,这个变量是用Y,结果是相当于一个变量y的隐式声明,在实际的编程过程中,错误是很难的找到。
当您在当前上下文中有这个隐式语句时,Javascript引擎将首先在这个变量的语句之前找出当前上下文中的变量,如果没有,则查找一个上下文,如果没有找到,将是这个变量的窗口语句中的最后一个!
例如:
代码如下:
窗口。hello;
函数(){
哦,不!!!;
}
Func();
警报(窗口。Y)显示哦,没有 / / # = >;!!!
当上下文的任何层都有这样的隐式变量时,该层的变量将被修改,而不是在窗口上生成一个新变量(这个bug是一个讨厌的问题,尤其是在封装更复杂的代码中)。
例如:
代码如下:
var;
函数A(){
x;
函数(){()
函数(){()
无var!
x =C的x;
};
警报(前C运行的b.x:+ x);
(c);
警报(后的运行,b.x:+ x);
};
警报(内:+ X);
(b);
警报(B功能恢复,后内:+ X);
};
警报(在运行之前,窗口;
(a);
警报(运行后,窗口;
有以下几层:窗口、函数A、函数B、函数C,它们已经嵌套在所有级别。
在窗口和A中,变量x被定义,变量在B中没有定义,C中的隐式声明一个x,而x最终修改变量的值。
请记住,在Javascript中,声明一个变量,并且必须添加一个var。