排序
面试题:== 操作符的强制类型转换规则是什么?
JavaScript 中的 == 操作符(相等操作符)在比较两个值时,会进行隐式类型转换(也称为强制类型转换),以使两边的类型相同后再进行比较。这种机制虽然提供了灵活性,但也容易导致难以预料的结...
面试题:什么是 DOM 和 BOM?
DOM 和 BOM 是 JavaScript 操作浏览器环境的两个核心概念,它们共同构成了 Web 前端开发的基础。 1. DOM (Document Object Model - 文档对象模型) 定义:DOM 是 HTML 或 XML 文档的编程接口。它...
面试题:const 对象的属性可以修改吗?
这是一个很好的面试题,答案是:可以,在大多数情况下。 const 关键字在 JavaScript 中的作用是创建一个常量引用,而不是创建一个不可变的值。这需要根据 const 声明的是什么类型的值来具体分析...
面试题:Object.assign 和对象扩展运算符有什么区别?是深拷贝还是浅拷贝?
Object.assign 和对象扩展运算符(...)在功能上非常相似,都用于浅拷贝对象属性。它们的主要区别在于语法、使用场景和一些细微的行为差异。 1. 功能与相似性 两者都用于将一个或多个源对象的可...
面试题:JavaScript 的 == 和 === 有什么区别?
这是一个 JavaScript 中最经典、最基础的面试题,考察对相等性判断和类型转换的理解。 ✅ 核心区别 比较符名称是否进行类型转换推荐使用==相等(松散相等)✅ 是(会进行隐式类型转换)❌ 不推...
面试题:isNaN 和 Number.isNaN 函数有什么区别?
isNaN() 和 Number.isNaN() 都是 JavaScript 中用于检查一个值是否为 NaN(Not-a-Number)的函数,但它们的行为有本质区别,尤其是在处理非数字类型的输入时。 一、isNaN()(全局函数) 行为: ...
面试题:为什么 JavaScript 函数的 arguments 参数是类数组而不是数组?如何遍历类数组?
这是一个很好的问题,它触及了 JavaScript 语言设计和历史演变的细节。 为什么 arguments 是类数组(Array-like),而不是真正的数组? arguments 对象是函数内部的一个特殊对象,它包含了函数...
面试题:JavaScript 如何使用 for…of 遍历对象?
这是一个常见的面试题,考察对 JavaScript 迭代机制的理解。 核心答案: 普通的 JavaScript 对象(Object)默认是不可迭代的,因此不能直接使用 for...of 遍历。 但可以通过一些方法使其支持 fo...
面试题:JavaScript 中为什么会有 BigInt 的提案?
JavaScript 中引入 BigInt 的提案,主要是为了解决Number 类型在表示和操作大整数时的精度限制问题。 核心原因:Number 类型的精度限制 在 JavaScript 中,所有的数字(包括整数和浮点数)都使...
面试题:mouseover 和 mouseenter 事件的区别是什么?
mouseover 和 mouseenter 都是鼠标进入元素时触发的事件,但它们在事件冒泡(或事件传播)的行为上有关键区别: 1. mouseover 事件 触发时机:当鼠标指针进入元素或其任何子元素时触发。 冒泡行...
