📜  使用括号表示法访问对象属性 - Javascript (1)

📅  最后修改于: 2023-12-03 15:36:39.623000             🧑  作者: Mango

使用括号表示法访问对象属性 - Javascript

在 Javascript 中,可以使用点表示法或者括号表示法来访问对象的属性。使用点表示法的时候,属性名必须是一个合法的标识符。如果属性名不是一个合法的标识符,那么就不能使用点表示法,而是要使用括号表示法。

什么是合法的标识符?

在 Javascript 中,标识符指的是用来标识变量、函数、属性的字符串。标识符可以由以下内容组成:

  • 字母(大小写敏感)
  • 数字
  • 下划线 _
  • 美元符号 $

注意,标识符不能以数字开头。

使用点表示法

点表示法用于访问对象属性,语法如下:

object.property

其中,object 是一个对象,property 是一个合法的标识符。

例如:

const person = {
  name: 'John',
  age: 30
};

console.log(person.name);    // 输出:John
console.log(person.age);     // 输出:30

在上面的例子中,我们使用点表示法访问了 person 对象的 name 和 age 属性。

使用括号表示法

括号表示法用于访问对象属性,语法如下:

object['property']

其中,object 是一个对象,property 是一个字符串或者一个表达式,用来表示属性名。

例如:

const person = {
  name: 'John',
  age: 30
};

console.log(person['name']);    // 输出:John
console.log(person['age']);     // 输出:30

在上面的例子中,我们使用括号表示法访问了 person 对象的 name 和 age 属性。注意,属性名要用引号括起来。

使用括号表示法访问动态属性

括号表示法的一个优势在于可以使用变量或者表达式来表示属性名。例如:

const person = {
  name: 'John',
  age: 30
};

const propertyName = 'name';
console.log(person[propertyName]);   // 输出:John

在上面的例子中,我们使用了一个变量 propertyName 来表示属性名,然后使用括号表示法访问了 person 对象的 name 属性。

再看一个例子:

const person = {
  name: 'John',
  age: 30
};

function getProperty(prop) {
  return person[prop];
}

console.log(getProperty('name'));   // 输出:John

在上面的例子中,我们定义了一个函数 getProperty,它接收一个参数 prop,然后使用括号表示法访问了 person 对象的属性。这里的 prop 参数可以是一个变量,也可以是一个表达式。

总结

使用点表示法可以方便地访问对象属性,但是它要求属性名必须是一个合法的标识符。如果属性名不是一个合法的标识符,就要使用括号表示法。括号表示法不仅可以使用字符串来表示属性名,还可以使用变量或者表达式来表示动态属性名。