JavaScript面试题及答案(6-10)

6、 什么是 Promise?你能解释一下 Promise 中的状态吗?

Promise是一种处理异步操作的机制,它可以使异步操作更加方便、易读、易维护。Promise有三种状态,分别为pending(进行中)、fulfilled(已成功)和rejected(已失败)。当Promise状态为pending时,表示异步操作正在进行中;当Promise状态为fulfilled时,表示异步操作已成功完成;当Promise状态为rejected时,表示异步操作已失败。

7、 如何判断一个值是否是数组?有哪些方法可以实现?

判断一个值是否是数组可以使用Array.isArray()方法、instanceof运算符和Object.prototype.toString.call()方法等。其中,Array.isArray()方法可以直接判断一个值是否为数组,返回值为布尔类型;instanceof运算符可以判断一个对象是否为某个构造函数的实例,如果一个对象是数组的实例,则返回true;Object.prototype.toString.call()方法可以获取一个值的内部属性[[Class]],如果该属性的值为”[object Array]”,则表示该值为数组类型。

8、 JavaScript 中的原型是什么?它有什么作用?

JavaScript中的原型(prototype)是一个对象,它包含了构造函数的属性和方法。在JavaScript中,每个对象都有一个原型对象(即proto),通过原型对象,可以实现属性和方法的继承。当我们访问一个对象的属性时,如果该对象本身不存在该属性,则会去原型对象中查找该属性。

9、 什么是 JavaScript 中的 this 关键字?它有哪些使用场景?

this是JavaScript中的一个关键字,它代表当前对象的引用。this的值在运行时确定,它的具体取值根据调用方式的不同而不同。this通常用于引用当前对象的属性和方法,也可以作为函数调用时的上下文对象来使用。

10、 如何使用 JavaScript 实现继承?

在JavaScript中实现继承有多种方式,包括原型继承、构造函数继承、组合继承等。其中,原型继承是通过修改原型链来实现继承的,将子类的原型对象指向父类的实例对象,从而实现继承父类的属性和方法;构造函数继承是通过在子类构造函数中调用父类构造函数来实现继承的,从而实现继承父类的属性;组合继承是同时使用原型继承和构造函数继承,通过原型继承来继承父类的方法,通过构造函数继承来继承父类的属性。