interview
javascript-frontend-basics
typeof null 的结果是什么为什么

前端 JavaScript 基础面试题, typeof null 的结果是什么?为什么?

前端 JavaScript 基础面试题, typeof null 的结果是什么?为什么?

QA

Step 1

Q:: typeof null 的结果是什么?为什么?

A:: typeof null 的结果是 'object'。这是因为在 JavaScript 中,null 被视为一个特殊的空对象引用,历史原因导致 typeof null 返回 'object'。具体原因是早期的 JavaScript 实现中,null 被表示为一个全零的对象引用,而在使用 typeof 操作符时,将其识别为对象类型。

Step 2

Q:: 如何判断一个值是否为 null?

A:: 可以使用严格等于运算符 (===) 来判断一个值是否为 null,例如:


if (value === null) {
  // value 是 null
}

Step 3

Q:: 解释一下 JavaScript 中的数据类型

A:: JavaScript 中有七种基本数据类型: 1. Number 2. String 3. Boolean 4. Undefined 5. Null 6. Symbol 7. BigInt 此外,还有一种复杂类型:Object,用于存储集合数据或更复杂的实体。

Step 4

Q:: 在 JavaScript 中,undefined 与 null 有何区别?

A:: undefined 表示一个变量已声明但尚未赋值。null 是一个表示'无'的特殊值,通常用于表示一个空对象引用。它们的主要区别在于 undefined 是 JavaScript 语言本身的一个关键字,而 null 是一个对象的特殊值。

用途

这些问题涉及 JavaScript 基础知识,了解这些概念有助于开发人员更好地掌握 JavaScript 的类型系统和语言特性。在实际生产环境中,正确判断变量的类型和处理空值对于编写健壮、无错误的代码至关重要。例如,区分 null 和 undefined 有助于避免在数据处理和调试时产生不必要的错误。\n

相关问题

🦆
如何检查一个变量是否已定义?

可以使用 typeof 运算符检查变量是否已定义,例如:


if (typeof variable !== 'undefined') {
  // variable 已定义
}

🦆
解释一下 JavaScript 中的类型转换

JavaScript 中的类型转换分为显式转换和隐式转换。显式转换是通过函数如 Number()、String() 和 Boolean() 进行的,隐式转换是通过 JavaScript 自动进行的,例如在算术运算和比较运算中。

🦆
什么是 NaN?如何检查一个值是否为 NaN?

NaN 表示 'Not-a-Number',是一个表示不是数字值的特殊值。可以使用 Number.isNaN() 函数或 isNaN() 函数检查一个值是否为 NaN,例如:


Number.isNaN(value)

🦆
什么是严格相等 === 和相等 == 运算符的区别?

严格相等 (===) 运算符不会进行类型转换,只有在值和类型都相等时才返回 true。相等 (==) 运算符会进行类型转换,在比较之前将不同类型转换为相同类型。例如:


0 == '0' // true
0 === '0' // false