解释使用点符号和方括号符号访问对象属性的区别
主题
JavaScript
在GitHub上编辑
TL;DR
点符号和方括号符号是 JavaScript 中访问对象属性的两种方式。点符号更简洁易读,但只能用于有效的 JavaScript 标识符。方括号符号更灵活,可以用于不是有效标识符的属性名称,例如包含空格或特殊字符的属性名称。
const obj = { name: 'Alice', 'favorite color': 'blue' };// Dot notationconsole.log(obj.name); // Alice// Bracket notationconsole.log(obj['favorite color']); // blue
点符号 vs. 方括号符号
点符号
点符号是访问对象属性最常见和最直接的方式。它简洁易读,但也有一些限制。
语法
object.property;
示例
const person = {name: 'Alice',age: 30,};console.log(person.name); // Aliceconsole.log(person.age); // 30
限制
- 属性名称必须是有效的 JavaScript 标识符(例如,没有空格、特殊字符,或不以数字开头)
- 属性名称不能是动态的(即,它们必须是硬编码的)
方括号符号
方括号符号更灵活,可以在点符号无法使用的情况下使用。
语法
object['property'];
示例
const person = {name: 'Alice','favorite color': 'blue',1: 'one',};console.log(person['name']); // Aliceconsole.log(person['favorite color']); // blueconsole.log(person[1]); // one
优点
- 可以访问名称不是有效 JavaScript 标识符的属性
- 可以使用变量或表达式来动态确定属性名称
动态属性名示例
const person = {name: 'Alice',age: 30,};const property = 'name';console.log(person[property]); // Alice