美文网首页让前端飞
浅谈JS对象的属性访问和键值访问

浅谈JS对象的属性访问和键值访问

作者: xiao雨痕 | 来源:发表于2016-12-12 00:23 被阅读402次

    最近在和后台联调接口时发现了一些恶心的对象结构,类似这样。

    const a  = {
      '0': 'a',
      '1': 'b',
      '2': 'c',
    }
    

    当需要取对象中的值时,只能够通过a['0']这种方式。而通过a.0获取会提示

    Uncaught SyntaxError: Unexpected number

    前者属于键值(key)访问,而后者则是通过属性(property)访问。在普通的对象中,使用任意方法都能够获取到对应的值。但通过属性访问后面需要一个标识符兼容的属性名,而通过键值访问则可以接受任意兼容UTF-8/unicode的字符串作为属性名。

    所以当我们需要访问对象a的’0‘属性时,只能通过键值的形式访问。

    有意思的是,在js中,数组也是对象,数组的索引就是属性名,所以我们会发现,数组的索引不是 Number 类型 而是 String 类型,数组也需要通过属性(property)进行访问。

    我们可以直接使用 array[0] 的写法。js自动将 Number 类型的 0 转换成了String 类型的 "0"

    const array = ['a', 'b', 'c']
    console.log(array['0']) //  a
    

    相关文章

      网友评论

        本文标题:浅谈JS对象的属性访问和键值访问

        本文链接:https://www.haomeiwen.com/subject/gxxmmttx.html