前端/移动开发面试题更新 2026-08-05

在 JavaScript 中,对 NaN 执行 typeof 操作会返回什么类型的值?

前端/移动开发技术原理JavaScript

考察说明

考查对 JavaScript 中 typeof 运算符和 NaN 特殊值的理解。

回答思路

  1. 【回答框架 1】typeof 是 JavaScript 中的一元运算符,用于返回操作数的类型,返回值为字符串。对于基本类型,它返回对应的类型名称,但对于引用类型,除了函数外,都返回 'object'。
  2. 【回答框架 2】NaN 是 Not a Number 的缩写,它本身是一个数值类型,表示一个非法的数字结果。在 JavaScript 中,NaN 是全局对象的属性,类型为 number。因此,typeof NaN 返回 'number'。
  3. 【回答框架 3】尽管 NaN 的含义是‘非数字’,但它的数据类型是 number,这是 JavaScript 的一个特殊设计。NaN 与自身不相等,即 NaN === NaN 为 false,需要使用 isNaN() 或 Number.isNaN() 来检测。
  4. 【关键点 1】typeof NaN 的结果是 'number',因为 NaN 属于数字类型。
  5. 【关键点 2】NaN 用于表示非法的数值运算结果,如 0/0。
  6. 【关键点 3】NaN 与任何值(包括自身)都不相等,检测 NaN 应使用 Number.isNaN() 或 isNaN()。
  7. 【易错点 1】不要因为 NaN 表示‘非数字’就误认为 typeof NaN 返回 'NaN' 或 'undefined'。
  8. 【易错点 2】isNaN() 会进行类型转换,而 Number.isNaN() 不会,检测时需要根据场景选择。