请问in运算符 function dispalert() {var a {x:1,y:2}for (var c in a) {document.write(c)}}上面的代
请问in运算符
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);
[解决办法]
晕,你不执行f,代码不走,怎么可能生效呢?
多加强基础,先记再练最后想,在基础不牢的时候别乱琢磨.
[解决办法]
顶LZ先多自己写下js的小例子,多看,多学,js的变量的定义很松的!
