首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

请教in运算符

2013-01-04 
请问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); 
[解决办法]
引用:
name = "hello";    function f() {         var a = "1001";           b = 123;      }  document.write(name);  document.write(b);  document.write(a);   

这段代码,为什么没有输出变量b的值呢?b不是全局变量吗?

晕,你不执行f,代码不走,怎么可能生效呢?
多加强基础,先记再练最后想,在基础不牢的时候别乱琢磨.
[解决办法]
顶LZ先多自己写下js的小例子,多看,多学,js的变量的定义很松的!

热点排行