前端 JS 基础面试题共52篇

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

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

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

面试题:JavaScript 的 splice 和 slice 函数会改变原数组吗?

这是一个非常典型的 JavaScript 面试题,考察对数组方法副作用的理解。 ✅ 直接答案: splice():会改变原数组 ✅ slice():不会改变原数组 ❌ 🔍 详细解释 1. splice() —— 会修改原数组 spli...
程序百科的头像-程序百科程序百科9个月前
627

面试题:JavaScript 中如何进行隐式类型转换?

JavaScript 中的隐式类型转换(Implicit Type Conversion),也称为强制类型转换(Type Coercion),是指在某些操作中,JavaScript 引擎会自动将一种数据类型转换为另一种数据类型,而无需开发...
程序百科的头像-程序百科程序百科9个月前
5914

面试题:JavaScript 的 == 和 === 有什么区别?

这是一个 JavaScript 中最经典、最基础的面试题,考察对相等性判断和类型转换的理解。 ✅ 核心区别 比较符名称是否进行类型转换推荐使用==相等(松散相等)✅ 是(会进行隐式类型转换)❌ 不推...
程序百科的头像-程序百科程序百科9个月前
599

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

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

面试题:JavaScript 脚本异步加载如何实现?各有什么区别?

在现代 Web 开发中,异步加载 JavaScript 脚本对于优化页面性能、避免阻塞页面渲染至关重要。以下是几种主要的实现方式及其区别: 1. <script> 标签的 async 属性 语法: <script src=...
程序百科的头像-程序百科程序百科9个月前
588

面试题:JavaScript 脚本延迟加载的方式有哪些?

JavaScript 脚本的延迟加载(Lazy Loading)指的是将脚本的加载或执行推迟到特定时机,以优化页面初始加载性能,避免阻塞关键渲染路径。它与异步加载(async)有重叠,但更侧重于“推迟”这一行...
程序百科的头像-程序百科程序百科9个月前
576

面试题:JavaScript 中判断数据类型的方式有哪些?

在 JavaScript 中,由于其动态类型和弱类型的特性,准确判断数据类型是开发中的常见需求。以下是几种主要的判断方式,各有优缺点和适用场景。 1. typeof 操作符 最常用的基础类型判断方法。 语...
程序百科的头像-程序百科程序百科9个月前
575

面试题:什么是 JavaScript 的类数组对象?如何转化为数组?

什么是 JavaScript 的类数组对象? 类数组对象(Array-like Object) 指的是一个普通对象,它具备以下两个关键特征,使其行为类似于数组,但不是真正的 Array 实例: 具有 length 属性:这个属...
程序百科的头像-程序百科程序百科9个月前
567

面试题:escape、encodeURI、encodeURIComponent 的区别是什么?

escape、encodeURI 和 encodeURIComponent 都是 JavaScript 中用于对字符串进行编码的函数,主要用于处理 URL 或查询参数中的特殊字符。但它们的作用范围、编码规则和现代推荐程度有显著区别。 ...
程序百科的头像-程序百科程序百科9个月前
5610