ECMAScript原始类型详解:从typeof到String字面量

作者:小括号时间:2026-10-26 17:22:31浏览:243

本文详细解析ECMAScript中的五种原始类型:Undefined、Null、Boolean、Number和String。重点介绍typeof运算符的返回值规则,探讨undefined与null的区别及相等性判断,深入讲解Number类型的边界值、无穷大处理及NaN特性,并列举String类型中各类转义字面量的具体含义与用法。

2.6 原始类型

ECMAScript原始类型概述

ECMAScript标准定义了五种原始类型(primitive type),分别为Undefined、Null、Boolean、Number和String。为了准确判断变量的具体类型,ECMAScript提供了typeof运算符来进行类型检测。


1、typeof运算符:

typeof运算符与返回值规则

具体实现代码如下:

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

typeof运算符的返回值严格限定为五种情况:若变量为Undefined型,返回"undefined";若为Boolean型,返回"boolean";若为Number型,返回"number";若为String型,返回"string";若变量属于引用类型或为Null类型,则统一返回"object"。


2、Undefined类型

Undefined类型详解

Undefined类型仅包含一个值,即undefined。在声明变量但未进行初始化,或者函数没有明确指定返回值时,该变量的默认值以及函数的返回值均为undefined。需要特别注意,值undefined与未定义的变量在语义上有所区别,但typeof运算符无法区分这两者。参考以下代码示例:


具体实现代码如下:

 
var oTemp;
alert(typeof oTemp); //outpus "undefined"
alert(typeof otemp2); //outpus "undefined"
alert(oTemp==undefined); //outpus "true"
alert(oTemp2==undefined); //causes error
function testFunc(){
// 
} 
alert(testFunc() == undefined); //outpus "true"

3、Null类型

Null类型与相等性判断

Null类型同样只包含一个专用值null。尽管值undefined并非从null派生而来,但在ECMAScript规范中,两者被定义为相等。


1 alert(null == undefined); //outpus "true"


尽管这两个值在相等性判断上结果一致,但其含义截然不同。undefined表示变量已声明但未初始化,而null则专门用于表示尚未存在的对象引用。


4、Boolean类型

Boolean类型

Boolean类型包含两个值:true和false。


5、Number类型

Number类型与特殊值处理

Number类型既可以表示32位整数,也可以表示64位浮点数。不同进制数的表示方法如下:


具体实现代码如下:

 
var iNum=55;// 10进制
var iNum=070;// 8进制
var iNum=oxAB;//16进制
var fNum=3.125e7;//科学计数法表示浮点数

ECMAScript定义了几个特殊的Number值,其中Number.MAX_VALUE和Number.MIN_VALUE分别定义了Number值集合的上限和下限边界。所有合法的ECMAScript数值必须介于这两个值之间,但计算过程产生的中间结果可能超出此范围。


当计算结果大于Number.MAX_VALUE时,系统会将其赋值为Number.POSITIVE_INFINITY,这表示数值已溢出,不再具有常规数字值的意义。同理,若计算结果小于Number.MIN_VALUE,则会被赋予Number.NEGATIVE_INFINITY,同样意味着数值溢出。一旦计算返回无穷大,该结果将不再参与后续的算术运算。


实际上,存在专门的无穷大值表示法,即Infinity。Number.POSITIVE_INFINITY的值即为Infinity,而Number.NEGATIVE_INFINITY的值为-Infinity。


可以使用isFinit()方法对任意数值进行检测,以判断其是否为有限值。示例如下:


具体实现代码如下:

 
var iResult = iNum*some_really_large_number;
if(isFinit(iResult)){
alert("Number is finite");
} 
else{
alert("Number is infinite");
} 

另一个特殊值是NaN,代表非数字(Not a Number)。NaN通常出现在类型转换失败的情况下。NaN不能参与常规的算术计算,且其最显著的特征是与自身不相等。因此,推荐使用isNaN()函数进行检测,例如:


具体实现代码如下:

 
alert(NaN == NaN); //outpus "false"
alert(isNaN("blue")); //outpus "true"
alert(isNaN("123")); //outpus "false"
alert(isNaN(123)); //outpus "false"

6、String类型

String类型与转义字面量

String是唯一没有固定大小限制的原始类型。ECMAScript中支持的字符字面量包括:


字面量 含义


\n 换行


\t 制表符


\b 空格


\r 回车


\f 换页符


\\\\ 反斜杠


\\' 单引号


\\" 双引号


\0nnn 八进制代码nnn表示的字符


\xnn 16进制代码nn表示的字符


\unnnn 16进制的代码nnnn表不的Unicode字符

作者最新文章
相关文章
更多