function dispalert() {
var a = {x:1,y:2};
for (var c in a) {
document.write(c);
}
}
上面的代码会输出对象a的每一个属性名x、y
可是,不要var居然也可以:
function dispalert() {
var a = {x:1,y:2};
for (c in a) {
document.write(c);
}
}
c#可不是这样的,上面两段代码有什么不同吗? ------解决方案-------------------- function dispalert() {
var a = {x:1,y:2};
for (c in a) {
document.write(c);
}
}
dispalert();
alert(c);
楼主这样试一下就知道了
上面2个代码只有第二个代码才会弹出y而第一个不会。
JS是非常灵活的语言,在任何位置都可以即时声明和使用全局变量,
也就是当你不使用var 来声明的时候,默认变量就是属于window, 所以第二个就是生成了一个
window.C ------解决方案-------------------- js灵活,不像C#严格,所以有时候也容易引起混淆 ------解决方案-------------------- 不要var即定义c为全局变量! ------解决方案-------------------- name = "hello";
function f() {
var a = "1001";
b = 123;
}
f();
document.write(name);
document.write(b);
document.write(a); ------解决方案--------------------