以前都接触的强类型的语言 C#神马的 ,js里 有个作用域完全颠覆以前的理解
典型例子
for(var 1; i>10; i++){
xxxxxxx
}
C#里 i 就是个局部变量, 执行完for 循环后应该不能引用了,就销毁了
但js里面 for 外面是可以用 i这个变量
相应的 if (){
var a =0;
}
a 在 if判断外也可以用的, 暂时推断所有控制流 里的 以前理解的 块 定义域在js 中不存在
唯一要注意的 作用域是 function (){
xxxxxxx
}
这个和以前的 C#理解是相同的
另外在注明一点:
function(){
var a =0;
b =0;
}
a,b两个变量是不同级别的,我所谓的级别是 a 是真的一个 局部变量 b 没用var声明,其实是个全局变量