Lang:简体中文

前端js面试题及答案

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

精选 js 面试题,助力求职通关

在前端开发的面试中,javascript 是考察的重点。下面就为大家整理一些常见的前端 js 面试题及答案。

基础语法类

题目:请简述 var、let 和 const 的区别。答案:var 是 es5 声明变量的方式,存在变量提升,可以重复声明。let 和 const 是 es6 新增的声明方式,不存在变量提升,且在块级作用域内有效。let 声明的变量可以重新赋值,而 const 声明的常量一旦赋值就不能再重新赋值,但如果是引用类型,其内部属性可以修改。例如:

javascript

var a = 1;

let b = 2;

const c = 3;

数据类型类

题目:如何判断一个变量是数组类型?答案:可以使用 array.isarray() 方法,这是 es5 新增的方法,专门用于判断一个值是否为数组。例如:

javascript

let arr = [1, 2, 3];

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

也可以使用 object.prototype.tostring.call() 方法,该方法可以准确判断数据类型。如:

javascript

let arr = [1, 2, 3];

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

函数与作用域类

题目:解释一下闭包的概念和作用。答案:闭包是指有权访问另一个函数作用域中的变量的函数。简单来说,即使该函数已经执行完毕,其作用域内的变量也不会被销毁,而是会被闭包引用。闭包的作用主要有两个,一是可以读取函数内部的变量,二是让这些变量的值始终保持在内存中。例如:

javascript

function outer() {

let num = 10;

function inner() {

console.log(num);

}

return inner;

}

let closure = outer();

closure(); // 输出 10

异步编程类

题目:简述 promise 的三种状态。答案:promise 有三种状态,分别是 pending(进行中)、fulfilled(已成功)和 rejected(已失败)。初始状态为 pending,当 promise 的操作成功完成时,状态变为 fulfilled;当操作失败时,状态变为 rejected。例如:

javascript

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

settimeout(() => {

resolve('操作成功');

}, 1000);

});

promise.then((result) => {

console.log(result); // 输出 '操作成功'

});

dom 操作类

题目:如何动态创建一个 html 元素并添加到页面中?答案:可以使用 document.createelement() 方法创建元素,然后使用 appendchild() 方法将其添加到页面中。例如:

javascript

let newdiv = document.createelement('div');

newdiv.textcontent = '这是新创建的 div';

let body = document.body;

body.appendchild(newdiv);

以下为推荐内容

微信二维码