前端 JS 基础面试题共52篇

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

面试题:什么是 DOM 和 BOM?

DOM 和 BOM 是 JavaScript 操作浏览器环境的两个核心概念,它们共同构成了 Web 前端开发的基础。 1. DOM (Document Object Model - 文档对象模型) 定义:DOM 是 HTML 或 XML 文档的编程接口。它...
程序百科的头像-程序百科程序百科7个月前
5315

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

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