ES6 对象面试题
-
问题描述: 什么是对象解构赋值?给出一个使用对象解构赋值的示例。
答案: 对象解构赋值是一种从对象中提取属性并赋值给变量的语法。它允许我们以更简洁的方式从对象中获取特定属性的值。
以下是一个使用对象解构赋值的示例:
javascriptconst person = { name: 'Alice', age: 30, country: 'USA' }; const { name, age } = person; console.log(name, age); // 输出 'Alice' 30
-
问题描述: 什么是对象的展开语法(Spread Syntax)?给出一个使用对象展开语法的示例。
答案: 对象的展开语法允许我们将一个对象的属性复制到另一个对象中。它可以用于创建新的对象或合并多个对象的属性。
以下是一个使用对象展开语法的示例:
javascriptconst person = { name: 'Alice', age: 30 }; const address = { city: 'New York', country: 'USA' }; const mergedObject = { ...person, ...address }; console.log(mergedObject); // 输出: { name: 'Alice', age: 30, city: 'New York', country: 'USA' }
-
问题描述: 什么是对象的方法简写?给出一个使用方法简写的示例。
答案: 对象的方法简写是一种在对象字面量中定义方法的简洁语法。在 ES6 中,可以省略函数关键字
function
和冒号:
,只需提供方法的名称和函数体即可。以下是一个使用方法简写的示例:
javascriptconst person = { name: 'Alice', age: 30, sayHello() { console.log(`Hello, my name is ${this.name}`); } }; person.sayHello(); // 输出 'Hello, my name is Alice'
-
问题描述: 什么是计算属性名(Computed Property Names)?给出一个使用计算属性名的示例。
答案: 计算属性名是一种允许在对象字面量中使用表达式作为属性名的语法。通过使用方括号
[]
和表达式,可以根据运行时的值来计算属性名。以下是一个使用计算属性名的示例:
javascriptconst propName = 'age'; const person = { name: 'Alice', [propName]: 30 }; console.log(person.age); // 输出 30
-
问题描述: 什么是对象的解构赋值默认值?给出一个使用解构赋值默认值的示例。
答案: 对象的解构赋值默认值允许在解构赋值过程中为未定义或值为
undefined
的属性设置默认值。如果属性的值为null
或已定义,则不会使用默认值。以下是一个使用解构赋值默认值的示例:
javascriptconst person = { name: 'Alice', age: undefined }; const { name, age = 30 } = person; console.log(name, age); // 输出 'Alice' 30