在JavaScript中,对象是由键值对组成的集合,获取对象属性值是日常开发里的高频操作,不同的获取方式有不同的适用场景,下面详细介绍三种常用方法。

一、点表示法(Dot Notation)
点表示法是最直观、最常用的获取对象属性值的方式,语法格式为对象名.属性名,属性名需要是符合标识符命名规则的字符串,不能包含空格、特殊字符,也不能是数字开头。
示例如下:
// 定义一个普通对象
const user = {
name: '张三',
age: 25,
job: '前端开发'
};
// 使用点表示法获取属性值
const userName = user.name;
const userAge = user.age;
console.log(userName); // 输出:张三
console.log(userAge); // 输出:25
这种方式的优点是语法简洁,可读性强,但是如果属性名是动态的,或者属性名包含特殊字符、是数字,点表示法就无法使用了。
二、方括号表示法(Bracket Notation)
方括号表示法的语法格式为对象名[属性名],这里的属性名可以是字符串,也可以是返回字符串的变量,还支持包含特殊字符、空格的属性名,灵活性比点表示法更高。
示例如下:
const user = {
name: '张三',
age: 25,
'user-address': '北京市朝阳区', // 包含特殊字符的属性名
1: '数字属性' // 数字作为属性名
};
// 直接使用字符串作为属性名
const address = user['user-address'];
// 使用变量作为属性名
const propName = 'name';
const name = user[propName];
// 获取数字属性
const numProp = user[1];
console.log(address); // 输出:北京市朝阳区
console.log(name); // 输出:张三
console.log(numProp); // 输出:数字属性
方括号表示法的核心优势是支持动态属性名,当属性名需要在运行时确定时,只能使用这种方式获取属性值。
三、Object.get()相关方法
除了上述两种直接访问的方式,JavaScript还提供了内置的Object相关方法用于获取对象属性,常用的有Object.getOwnPropertyDescriptor和Object.values等,这里以Object.getOwnPropertyDescriptor为例介绍。
Object.getOwnPropertyDescriptor可以获取对象某个自身属性的详细描述信息,包含属性值、是否可写、是否可枚举、是否可配置等配置,语法格式为Object.getOwnPropertyDescriptor(obj, prop)。
示例如下:
const user = {
name: '张三',
age: 25
};
// 获取name属性的描述信息
const nameDescriptor = Object.getOwnPropertyDescriptor(user, 'name');
console.log(nameDescriptor);
// 输出:{ value: '张三', writable: true, enumerable: true, configurable: true }
// 如果需要拿到属性值,直接取value属性即可
const userName = nameDescriptor.value;
console.log(userName); // 输出:张三
这种方法更多用于需要获取属性完整配置信息的场景,如果只是单纯获取属性值,前两种方式的效率更高。
三种方法对比
为了更清晰区分三种方法的适用场景,以下是对比表格:
| 方法 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| 点表示法 | 属性名固定、符合标识符规则 | 语法简洁,可读性强 | 不支持动态属性名,不支持特殊字符属性名 |
| 方括号表示法 | 属性名动态、包含特殊字符、是数字 | 灵活性高,支持所有合法属性名 | 语法相对繁琐,可读性稍弱 |
| Object.get相关方法 | 需要获取属性完整配置信息 | 可获取属性详细配置 | 单纯获取值时代码冗余,效率低 |
实际开发中,优先根据属性名的情况选择合适的方法,固定属性名优先用点表示法,动态属性名用方括号表示法,需要属性配置信息时再考虑Object相关方法。
JavaScript对象属性点表示法方括号表示法Object_get修改时间:2026-07-24 11:33:38