Lang:简体中文

js经典面试题及答案

日期:2025-09-08 / 来源:面试宝典

掌握常见题型,轻松应对面试

在javascript的面试中,有一些经典题目经常被提及。下面就为大家详细介绍这些题目及答案。

数据类型判断类题目

题目:如何准确判断一个变量是数组类型?

答案:在javascript里,有几种方法可以判断变量是否为数组。最常用的是使用array.isarray()方法。例如:

let arr = [1, 2, 3];

console.log(array.isarray(arr)); // 输出true

也可以用object.prototype.tostring.call()方法,代码如下:

console.log(object.prototype.tostring.call(arr) === '[object array]'); // 输出true

作用域与闭包类题目

题目:解释闭包是什么,并给出一个闭包的例子。

答案:闭包是指有权访问另一个函数作用域中的变量的函数。简单来说,即使该函数已经执行完毕,其作用域内的变量也不会被销毁,而是会被闭包引用。

以下是一个闭包的例子:

function outer() {

let num = 10;

function inner() {

console.log(num);

}

return inner;

}

let closure = outer();

closure(); // 输出10

异步编程类题目

题目:使用promise实现一个异步请求,请求成功时返回数据,失败时返回错误信息。

答案:可以使用fetch api结合promise来实现。示例代码如下:

function fetchdata() {

return new promise((resolve, reject) => {

fetch('https://example.com/api/data')

.then(response => {

if (response.ok) {

return response.json();

} else {

throw new error('请求失败');

}

})

.then(data => {

resolve(data);

})

.catch(error => {

reject(error);

});

});

}

fetchdata()

.then(data => console.log(data))

.catch(error => console.error(error));

原型与继承类题目

题目:简述javascript中原型链继承的原理,并给出一个示例。

答案:原型链继承的原理是通过将子类的原型指向父类的实例,这样子类就可以继承父类的属性和方法。

示例代码如下:

function parent() {

this.name = 'parent';

}

parent.prototype.sayname = function() {

console.log(this.name);

}

function child() {}

child.prototype = new parent();

let child = new child();

child.sayname(); // 输出parent

事件循环类题目

题目:解释javascript的事件循环机制。

答案:javascript是单线程的,事件循环机制用来处理异步任务。它主要包含任务队列和执行栈。当遇到异步任务时,会将其放入任务队列中。当执行栈为空时,事件循环会从任务队列中取出任务放入执行栈中执行。例如:

console.log('开始');

settimeout(() => {

console.log('异步任务');

}, 0);

console.log('结束');

输出顺序是:开始、结束、异步任务。这是因为settimeout是异步任务,会被放入任务队列,等执行栈中的同步任务执行完后才会执行。

以下为推荐内容

微信二维码