前端 JS 基础面试题共52篇

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

面试题:JavaScript 有哪些数据类型?它们的区别是什么?

JavaScript 的数据类型可以分为两大类:原始类型(Primitive Types) 和 对象类型(Object Type)。 一、原始类型(Primitive Types) 原始类型是不可变的(immutable),存储在栈内存中。它们...
程序百科的头像-程序百科程序百科17天前
2713

面试题:如何判断 JavaScript 变量是数组?

在 JavaScript 中,由于数组本质上是对象,使用 typeof 无法准确判断数组类型(typeof [] 返回 'object')。因此,需要使用更可靠的方法来判断一个变量是否为数组。 以下是几种常用且推荐的方法...
程序百科的头像-程序百科程序百科17天前
275

面试题:JavaScript 中 null 和 undefined 的区别是什么?

null 和 undefined 都表示“无”或“空值”,但在 JavaScript 中有明确的区别。理解它们的不同是掌握 JavaScript 类型系统的关键。 一、核心区别总结 特性undefinednull含义“未定义” —— 变...
程序百科的头像-程序百科程序百科17天前
2311

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

typeof null 的结果 typeof null 的结果是 'object'。 这是一个在 JavaScript 早期就存在的历史遗留 bug。 为什么是 'object'? 1. 历史原因(C 语言风格的实现) JavaScript 的最初版本(由 Br...
程序百科的头像-程序百科程序百科17天前
5915

面试题:typeof 和 instanceof 有什么区别?

typeof 和 instanceof 都是 JavaScript 中用于类型检查的操作符,但它们的用途、工作原理和适用场景有显著区别。 一、typeof 操作符 作用: 返回一个表示操作数基本类型的字符串。 主要用于检查...
程序百科的头像-程序百科程序百科17天前
2315

面试题:为什么 JavaScript 中 0.1 + 0.2 !== 0.3,如何让其相等?

这是一个经典的 JavaScript 浮点数精度问题。 一、为什么 0.1 + 0.2 !== 0.3? 根本原因:二进制浮点数的精度限制 JavaScript 使用 IEEE 754 标准的 64 位双精度浮点数来表示数字。这种格式无法...
程序百科的头像-程序百科程序百科17天前
4510

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

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

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

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

面试题:isNaN 和 Number.isNaN 函数有什么区别?

isNaN() 和 Number.isNaN() 都是 JavaScript 中用于检查一个值是否为 NaN(Not-a-Number)的函数,但它们的行为有本质区别,尤其是在处理非数字类型的输入时。 一、isNaN()(全局函数) 行为: ...
程序百科的头像-程序百科程序百科17天前
3715

面试题:== 操作符的强制类型转换规则是什么?

JavaScript 中的 == 操作符(相等操作符)在比较两个值时,会进行隐式类型转换(也称为强制类型转换),以使两边的类型相同后再进行比较。这种机制虽然提供了灵活性,但也容易导致难以预料的结...
程序百科的头像-程序百科程序百科17天前
219