zoukankan      html  css  js  c++  java
  • 获取对象属性的点方法和中括号法的区别

    转行干前端也有一段时间了,闲暇之余来复习一下原生js,总结一下碰到的一些疑问或者问题,我是小白,有不到位之处请指正;

    不废话,一般访问对象的属性,我们可以用点方法或者中括号法来获取,简单实例如下:

    var obj = {'name':'张三','age':'18'};
    var getName = obj.name;//点方法
    var getAge = obj['age'];//中括号法
    console.log(getName);//打印结果:张三
    console.log(getAge);//打印结果:18

    直到昨天,同学A问我一个问题,给了我一个json对象,然后我就开始有这个疑问如下:

    var obj = {'34':{
            '可能错误原因':'无',
            '错误代码':'D000',
            '错误位置':'接收方成员行(MEMBER)',
            '错误描述':'无',
        }};

    应该有同学注意到了吧,有个属性名是数字,这个时候用点语法就会报错,用中括号就可以:

    console.log(obj.34);//语法报错
    console.log(obj['34']);//正常获取到;

    所以说,点语法和中括号法还是有区别的,根据查资料,结论如下:

    1、中括号法可以用变量作为属性名,而点方法不可以;

    var obj = {};
    obj.name = '张三';
    var myName = 'name';
    console.log(obj.myName);//undefined,访问不到对应的属性
    console.log(obj[myName]);//张三

    2、中括号法可以用数字作为属性名,而点语法不可以;

    3、中括号法可以使用js的关键字和保留字作为属性名,而点语法不可以(尽量避免在变量或者属性中使用关键字或保留字);

    好了,先这么多吧,有错误的地方希望大家指正;

    <--转载请注明,谢谢!-->

  • 相关阅读:
    二分图最大匹配的K&#246;nig定理及其证明
    HDOJ 2389 Rain on your Parade
    HDOJ 1083 Courses
    HDOJ 2063 过山车
    POJ 1469 COURSES
    UESTC 1817 Complete Building the Houses
    POJ 3464 ACM Computer Factory
    POJ 1459 Power Network
    HDOJ 1532 Drainage Ditches
    HDU 1017 A Mathematical Curiosity
  • 原文地址:https://www.cnblogs.com/hjvsdr/p/6638826.html
Copyright © 2011-2022 走看看