前端 JS 基础面试题共52篇

JavaScript 是前端开发的核心语言,掌握其基础是开发网页应用的必备技能。JavaScript 基础面试题的考察重点包括数据类型、作用域、闭包、原型链、事件处理、DOM 操作、定时器、异步编程(如回调函数)以及常见的内置对象和方法。

面试题:为什么 JavaScript 函数的 arguments 参数是类数组而不是数组?如何遍历类数组?

这是一个很好的问题,它触及了 JavaScript 语言设计和历史演变的细节。 为什么 arguments 是类数组(Array-like),而不是真正的数组? arguments 对象是函数内部的一个特殊对象,它包含了函数...
程序百科的头像-程序百科程序百科20天前
658

面试题:JavaScript 如何使用 for…of 遍历对象?

这是一个常见的面试题,考察对 JavaScript 迭代机制的理解。 核心答案: 普通的 JavaScript 对象(Object)默认是不可迭代的,因此不能直接使用 for...of 遍历。 但可以通过一些方法使其支持 fo...
程序百科的头像-程序百科程序百科22天前
5010

面试题:JavaScript 中为什么会有 BigInt 的提案?

JavaScript 中引入 BigInt 的提案,主要是为了解决Number 类型在表示和操作大整数时的精度限制问题。 核心原因:Number 类型的精度限制 在 JavaScript 中,所有的数字(包括整数和浮点数)都使...
程序百科的头像-程序百科程序百科18天前
497

面试题:mouseover 和 mouseenter 事件的区别是什么?

mouseover 和 mouseenter 都是鼠标进入元素时触发的事件,但它们在事件冒泡(或事件传播)的行为上有关键区别: 1. mouseover 事件 触发时机:当鼠标指针进入元素或其任何子元素时触发。 冒泡行...
程序百科的头像-程序百科程序百科21天前
5113

面试题:typeof NaN 的结果是什么?

typeof NaN 的结果是 'number'。 解释: NaN 是 'Not-a-Number' 的缩写,表示“不是一个数字”。 尽管它的名字是“不是数字”,但在 JavaScript 的类型系统中,NaN 被归类为 number 类型。 这是...
程序百科的头像-程序百科程序百科18天前
249

面试题:JavaScript 的数组有哪些原生方法?

JavaScript 的数组提供了丰富的原生方法,可以分为几大类:增删改查、遍历、转换、搜索、排序等。以下是常用方法的分类总结: 一、添加/删除元素(改变原数组) 这些方法会直接修改(mutate)原...
程序百科的头像-程序百科程序百科20天前
398

面试题:JavaScript 中 for…in 和 for…of 的区别是什么?

这是一个非常经典的 JavaScript 面试题,考察对循环机制和数据结构的理解。for...in 和 for...of 看似相似,但用途和行为有本质区别。 ✅ 核心区别总结 特性for...infor...of设计目的遍历对象的...
程序百科的头像-程序百科程序百科22天前
316

面试题:JavaScript 中 + 操作符什么时候用于字符串的拼接?

在 JavaScript 中,+ 操作符的行为是动态的,它既可以用于数值相加,也可以用于字符串拼接。其具体行为取决于操作数的数据类型。 核心规则 当 + 操作符的任意一个操作数是字符串(或可以被转换...
程序百科的头像-程序百科程序百科18天前
3714

面试题:JavaScript 的 forEach 和 map 方法有什么区别?

forEach 和 map 都是 JavaScript 中用于遍历数组的方法,但它们在目的、返回值和使用场景上有本质的区别。 核心区别总结 特性forEachmap目的执行副作用(如修改外部变量、操作 DOM、打印日志)...
程序百科的头像-程序百科程序百科21天前
3113

面试题:如何获取安全的 undefined 值?

在 JavaScript 中,undefined 是一个原始值,表示变量已声明但未赋值。然而,在非严格模式(sloppy mode)下,undefined 并不是一个保留字,可以被重新赋值,这可能导致代码出现难以预料的错误...
程序百科的头像-程序百科程序百科18天前
4313