排序
面试题:typeof null 的结果是什么?为什么?
typeof null 的结果 typeof null 的结果是 'object'。 这是一个在 JavaScript 早期就存在的历史遗留 bug。 为什么是 'object'? 1. 历史原因(C 语言风格的实现) JavaScript 的最初版本(由 Br...
面试题:typeof 和 instanceof 有什么区别?
typeof 和 instanceof 都是 JavaScript 中用于类型检查的操作符,但它们的用途、工作原理和适用场景有显著区别。 一、typeof 操作符 作用: 返回一个表示操作数基本类型的字符串。 主要用于检查...
面试题:为什么 JavaScript 中 0.1 + 0.2 !== 0.3,如何让其相等?
这是一个经典的 JavaScript 浮点数精度问题。 一、为什么 0.1 + 0.2 !== 0.3? 根本原因:二进制浮点数的精度限制 JavaScript 使用 IEEE 754 标准的 64 位双精度浮点数来表示数字。这种格式无法...
面试题:如何获取安全的 undefined 值?
在 JavaScript 中,undefined 是一个原始值,表示变量已声明但未赋值。然而,在非严格模式(sloppy mode)下,undefined 并不是一个保留字,可以被重新赋值,这可能导致代码出现难以预料的错误...
面试题:typeof NaN 的结果是什么?
typeof NaN 的结果是 'number'。 解释: NaN 是 'Not-a-Number' 的缩写,表示“不是一个数字”。 尽管它的名字是“不是数字”,但在 JavaScript 的类型系统中,NaN 被归类为 number 类型。 这是...
面试题:isNaN 和 Number.isNaN 函数有什么区别?
isNaN() 和 Number.isNaN() 都是 JavaScript 中用于检查一个值是否为 NaN(Not-a-Number)的函数,但它们的行为有本质区别,尤其是在处理非数字类型的输入时。 一、isNaN()(全局函数) 行为: ...
面试题:== 操作符的强制类型转换规则是什么?
JavaScript 中的 == 操作符(相等操作符)在比较两个值时,会进行隐式类型转换(也称为强制类型转换),以使两边的类型相同后再进行比较。这种机制虽然提供了灵活性,但也容易导致难以预料的结...
面试题:JavaScript 其他值到字符串的转换规则是什么?
在 JavaScript 中,将其他类型的值转换为字符串(String)是一个常见的操作,它发生在字符串拼接、模板字面量或显式调用 String() 时。转换规则相对直观,但也有一些需要注意的细节。 一、核心...
面试题:JavaScript 其他值到数字值的转换规则是什么?
在 JavaScript 中,将其他类型值转换为数字(Number)是一个常见的隐式或显式类型转换过程。理解其规则对于避免计算错误至关重要。 转换主要通过两种方式触发: 显式转换:使用 Number() 构造函...
面试题:JavaScript 其他值到布尔值的转换规则是什么?
在 JavaScript 中,当一个非布尔值被用于需要布尔值的上下文(如 if 语句、while 循环、逻辑运算符 ||/&&/! 等)时,JavaScript 会自动将其转换为布尔值。这个过程称为隐式类型转换或强...
