请问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); [解决办法]