JavaScript ECMAScript 原始类型详解与 typeof 运算符用法
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。它通常在以下情况出现:
- 声明了变量但从未对其进行初始化。
- 函数没有明确的返回值时,默认返回
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 基础教程的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













