JavaScript ECMAScript 原始类型详解与 typeof 运算符用法

Owen
Owen
发布时间:2026-10-15 | 5人浏览过
原创

JavaScript 基于 ECMAScript 标准,包含 Undefined、Null、Boolean、Number 和 String 五种原始类型。掌握 typeof 运算符的返回值规则及各类特殊值(如 NaN、Infinity)的特性,是编写健壮代码的基础。

typeof 运算符与类型判断

ECMAScript 提供了 typeof 运算符用于检测变量的数据类型。该运算符返回一个表示类型的字符串,其返回值规则如下:

  • undefined:变量为未初始化或声明但未赋值。
  • boolean:布尔类型。
  • number:数值类型。
  • string:字符串类型。
  • object:引用类型对象或值为 null 的情况。

以下代码展示了 typeof 对不同类型的应用:

var sTemp = "test string";
alert(typeof sTemp); // 输出 "string"
alert(typeof 95);    // 输出 "number"

1、Undefined 类型

undefined 类型只有一个值,即 undefined。它通常在以下情况出现:

  1. 声明了变量但从未对其进行初始化。
  2. 函数没有明确的返回值时,默认返回 undefined。

需要注意的是,undefined 并不等同于“未定义”的值,尽管 typeof 对两者都返回 "undefined"。直接访问未声明的变量会报错,而访问已声明但未初始化的变量则返回 undefined。

var oTemp;
alert(typeof oTemp);       // 输出 "undefined" (变量存在)
// alert(typeof otemp2);   // 会导致错误 (变量不存在/未声明)

function testFunc() {
    // 无返回值
}
alert(testFunc() == undefined); // 输出 "true"

2、Null 类型

null 类型也只有一个专用值 null。在 ECMAScript 中,undefined 被认为是派生自 null 的,因此这两个值在相等性比较中被视为相等:

alert(null == undefined); // 输出 "true"

尽管它们在逻辑上相等,但含义截然不同:undefined 表示变量已声明但未初始化,而 null 通常用于表示“尚未存在的对象”或空对象引用。

3、Boolean 类型

Boolean 类型有两个字面量值:true 和 false。这是逻辑运算和条件判断中最基础的数据类型。

4、Number 类型

Number 类型可表示整数(32位)和浮点数(64位)。支持多种进制表示法:

var iNum = 55;      // 十进制
var iOctal = 070;   // 八进制 (以0开头)
var iHex = 0xAB;    // 十六进制 (以0x开头)
var fNum = 3.125e7; // 科学计数法表示的浮点数

特殊数值:无穷大与 NaN

涉及以下边界值和特殊状态:

  • 边界值:Number.MAX_VALUE 和 Number.MIN_VALUE 定义了数值范围。超过此范围的计算结果将被赋予 Number.POSITIVE_INFINITY (正无穷) 或 Number.NEGATIVE_INFINITY (负无穷)。
  • Infinity:可以使用全局常量 Infinity 表示无穷大。使用 isFinite() 方法可判断数值是否有限。
  • NaN:Not a Number,表示非数字。通常由类型转换失败产生(如 alert(isNaN("blue")); // true)。
    • 重要特性:NaN 不等于任何值,包括其自身 (NaN == NaN 为 false)。
    • 检测方法:务必使用 isNaN() 函数进行检测,而非直接使用 ==。
alert(NaN == NaN);         // 输出 "false"
alert(isNaN("blue"));      // 输出 "true"
alert(isNaN(123));         // 输出 "false"

5、String 类型

String 是唯一大小不固定的原始类型。ECMAScript 支持丰富的字符转义序列,用于表示特殊字符:

  • \n:换行
  • \t:制表符
  • \b:退格 (注意:原文空格疑为笔误,通常 \b 为 backspace)
  • \r:回车
  • \f:换页符
  • \\:反斜杠本身
  • \' / \":单引号 / 双引号
  • \0nnn:八进制代码表示的字符
  • \xnn:十六进制代码表示的字符
  • \unnnn:Unicode 字符编码

总结

理解这五种原始类型的核心在于区分 undefined 与 null 的语义差异,以及正确应对 NaN 和 Infinity 等边缘情况。熟练掌握 typeof 的使用能有效地进行类型检查,避免运行时错误。以上就是 JavaScript ECMAScript 原始类型的详细内容,更多关于 JavaScript 基础教程的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表