zoukankan      html  css  js  c++  java
  • javascript对象访问

    javascript中创建对象可以这样:

    var obj = {
            name : "sam",
            age : 27,
            sex : "boy"
        }

    也可以这样:

    var obj = {
            "name" : "sam",
            "age" : 27,
            "sex" : "boy"
        }

    不加引号是简化写法,加引号的是标准写法,当字段名包含某些特殊符号如 - 时,不能使用简化写法。

    {
            z-index: 10 //
    }
    {
            'z-index':10//正确
    }

    综上,规范起见,最好都按照标准写法来编写代码。
        另外,在访问对象属性时出现这个情况
        document.write(obj[name]);页面输出undefined
        document.write(obj[age]);firebug监控报错:age is not defined
        需要说明的是,这种访问对象属性的方法是错误的,正常的方法是obj.name或者obj["name"],这里拿出来是为了阐述上面提到的这个一个报错一个不报错的问题
        javascript中,如果一个变量未定义就直接使用,如以下代码:
        alert(age);
        页面不会输出任何信息,firebug监控报错:age is not defined
        如果定义了但未初始化,如以下代码:
        var age;
        alert(age);
        页面输出:undefined
        再回到上面的问题
        document.write(obj[age]);firebug监控报错:age is not defined,这段代码是没问题的,obj[age]是错误的访问对象方法,age没有被定义过,所以报错信息:age is not defined
        但是document.write(obj[name]);这段代码为什么就输出了undefined呢,name同样是未被定义过的,只有在被定义过且没有被初始化才会输出undefined,这是为什么?
        原来name这个属性是window对象自身就拥有的,我又没有在代码中重新定义覆盖掉,所以在document.write(obj[name])被自动识别为window的name属性,因为未被初始化,所以输出undefined            



        然后为了进一步验证以上的结论,脱离这个环境继续做测试,有以下代码:
        document.write(age);
        firebug监控报错:age is not defined 页面未输出任何信息,OK正常
        document.write(name);
        运行后发现预想的undefined值并未出现,页面是空白的,没有输出任何信息,于是推测name的默认值为一个空的字符串,测试代码如下:
        document.write(name + 123 + 456);
        页面输出123456,推断正确


        所以上面:document.write(obj[name]);输出undefined背后其实发生了这些事:
        name = "";
        document.write(obj[name])等价于document.write(obj[""]);

    ------------------------------- 把努力当成习惯 -------------------------------
  • 相关阅读:
    RPA-UiPath视频教程2
    skywalking链路监控
    RPA-UiPath视频教程1
    Redis基础与性能调优
    tomcat调优
    DDos、CC攻击与防御
    UiPath官方视频Level2
    UiPath直播课程
    UiPath手把手教程
    【0】python核心编程,第二章
  • 原文地址:https://www.cnblogs.com/qinchuan/p/4256441.html
Copyright © 2011-2022 走看看