用中括号访问对象时用引号和不用引号的情况

146 阅读1分钟

平时在访问对象时我们常用点( . )和中括号( [ ] )这两种方式,点的话好理解,但用中括号时往往会犹豫到底要不要加引号,如果你也有这个问题,这篇文章或许能够帮助你

1. 第一种方式 —— 点( . )

用点(.)访问 obj 对象中的 add 属性:

    const obj = {
      add: '添加'
    }
    console.log(obj.add) // 添加

用点(.)访问很简单,也很容易理解,下面进入正题

2. 第二种方式 —— 中括号( [ ] )

  • 使用引号的情况:直接访问对象中的属性要加引号。

        const obj = {
          add: '添加'
        }
        console.log(obj["add"]) // 添加
        
        // add 一定要加引号,如果不加引号且没有定义 add 会报错,提示没有定义 add
        // 如果你定义了 add , 但不加引号,则结果为 undefined , 如下:
        const add = ''
        console.log(obj[add]) // undefined
    
  • 不用引号的情况:将要访问的属性赋值给一个变量,中括号中使用这个变量不需要加引号

        const n = 'add' // add 一定要加引号,不然会报错提示 add is not defined,就是没有定义的意思
        console.log(obj[n]) // 添加 ,等价于 obj["add"]
    

    可以这么理解,因为 n = 'add' , 所以 obj[n] = obj["add"] ,这样的话又回到了第一种使用引号的情况,因此不用引号只是因为将带有引号的属性赋值给了一个变量而已。

    好了,本篇文章就到这里,希望对你们有帮助。