面试题答案
一键面试对象初始化
- 字面量方式
// 使用字面量方式初始化对象
const person = {
name: 'John',
age: 30,
gender: 'Male'
};
优点:
- 语法简洁明了,创建对象快速方便。
- 易读性强,结构清晰,能直接看到对象的属性和初始值。
缺点:
- 如果需要创建多个类似结构的对象,会有大量重复代码。
- 构造函数方式
// 使用构造函数方式初始化对象
function Person(name, age, gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
const person2 = new Person('Jane', 25, 'Female');
优点:
- 适合创建多个具有相同结构的对象,可复用代码,提高开发效率。
- 通过传递不同参数,可以灵活创建不同属性值的对象。
缺点:
- 语法相对复杂,需要定义构造函数。
- 如果忘记使用
new
关键字,可能导致意外的全局变量创建等问题。
数组初始化
- 字面量方式
// 使用字面量方式初始化数组
const numbers = [1, 2, 3, 4, 5];
优点:
- 语法简单直观,能快速创建数组并初始化元素。
- 可直接对数组元素进行操作,方便快捷。
缺点:
- 不太适合动态创建数组,若要根据运行时的条件创建数组,灵活性较差。
- 构造函数方式
// 使用构造函数方式初始化数组
const numbers2 = new Array(1, 2, 3, 4, 5);
优点:
- 构造函数可以接受不同类型的参数,有一定灵活性,如
new Array(5)
可创建长度为5的空数组。
缺点:
- 语法相对冗长,对于简单数组创建不如字面量简洁。
- 当构造函数只传递一个数字参数时,该参数表示数组长度而非元素值,容易造成混淆。