JavaScript把数据类型分为基本数据类型和复杂数据类型(也称为引用数据类型)两类。基本数据类型包含了number(数字)类型、string(字符串)类型、boolean(布尔)类型、undefined(未定义)类型、null(空)类型;复杂数据类型就是对象类型,包含了对象、数组、函数。数据类型划分示意图如图2-2所示。
图2-2 数据类型分类
本小节介绍基本数据类型,后续章节将介绍复杂数据类型。
数字类型用于存储数字。数字可分为整型和浮点型,整型用于表示整数,浮点型用于表示小数。示例如下:
数字类型有Infinity、-Infinity和NaN(Not a Number)三个特殊值,分别代表正无穷大、负无穷大和非数字。JavaScript提供了isFinite()和isNaN()函数,分别用于判断当前变量是否为有限数值和非数字(这些函数的介绍详见“第4章函数”)。示例如下:
提示: BigInt是在ES10(ECMAScript 2019)中新增的数据类型。它表示一个任意精度的整数,可以表示超长数据,超出2的53次方。在JavaScript中,普通的number类型只能安全地表示-(2^53-1)到2^53-1之间的值。使用BigInt可以扩展这个范围,满足更大的数值运算需求。可以用在一个整数字面量后面加n的方式定义一个BigInt,如10n,或者调用BigInt()函数来创建。
字符串类型是一个连续的字符序列,可以是计算机能够表示的任何字符序列。JavaScript通过使用单引号或者双引号来表示字符串。由于HTML标签里面的属性使用的是双引号,因此本书推荐使用单引号表示字符串。示例如下:
需要注意的是,JavaScript可以用单引号嵌套双引号,或者用双引号嵌套单引号。示例如下:
JavaScript的反斜杠(\)有着特殊的用途,通过它和一些字符的组合,可以在字符串中包含一些无法直接输入的字符,或改变某个字符的原义。反斜杠(\)称为转义字符,例如“\n”表示的是换行符,可实现换行功能。JavaScript常用的转义字符如表2-3所示。
表2-3 常用的转义字符
转义字符的应用,示例如下:
上述代码在Chrome浏览器中的运行结果如图2-3所示。
图2-3 转义字符的使用
由图2-3可知,要输出字符串中的双引号,除了可以使用单引号嵌套双引号的方法之外,还可以在双引号里面使用转义字符。
布尔类型表示真或假、是或否,只有true和false两个值,true表示“真”,false表示“假”,区分字母大小写。示例如下:
提示: 布尔类型通常用于表示某种状态,或在流程控制语句中判断条件是否成立。
undefined类型只有一个值,即undefined。这个值表示变量或属性没有被赋值,或者说它们没有被定义。示例如下:
var age; // 声明变量age,没有初始化,默认值是undefined
null类型只有一个值,即null。它通常用于表示变量不包含任何对象或者函数。示例如下:
var obj = null; // 声明变量obj,初始值是null
提示: null与undefined的区别是null表示给变量赋予了空值,而undefined则表示变量没有被赋值。