JavaScript+jQuery交互式Web前端开发(第2版)
上QQ阅读APP看书,第一时间看更新

2.1.2 常用的基本数据类型

在JavaScript中,常用的基本数据类型有布尔型、数字型、字符串型、空型和未定义型,而大整型和符号型不常用。下面对常用的基本数据类型进行讲解。

1.布尔型

布尔型数据有两个值,分别是 true(真)和false(假)。布尔型数据通常用于表示程序中的逻辑判断结果,其中,true 表示事件成功或条件成立的情况,false 表示事件失败或条件不成立的情况。例如,判断数字3是否大于数字2,其结果用布尔型数据表示为true。

需要注意的是,由于在JavaScript中严格区分大小写,所以只有当true和false全部为小写时才表示布尔型数据。

下面通过代码演示布尔型数据的使用。首先声明两个变量,然后分别赋值为 true 和false。

1 var result01 = true;
2 var result02 = false;

在上述示例代码中,第1行代码声明变量result01并赋值为布尔型数据true;第2行代码声明变量result02并赋值为布尔型数据false。

2.数字型

JavaScript中的数字型数据可以分为整数和浮点数(表示小数),在数字前面添加“+”表示正数,添加“-”表示负数,通常情况下省略“+”。

下面分别介绍数字型数据中的整数和浮点数。

(1)整数

在JavaScript中,通常使用十进制表示整数,此外还可以使用二进制、八进制或十六进制。十进制数由数字0~9组成,使用规则是逢十进一;二进制数由数字0和1组成,使用规则是逢二进一;八进制数由数字0~7组成,使用规则是逢八进一;十六进制数由数字0~9及字母A~F组成,不区分大小写,使用规则是逢十六进一。

下面通过代码演示数字型数据中整数的使用。首先声明4个变量,然后分别给这4个变量赋值为二进制、八进制、十进制、十六进制的整数。

1  var bin = 0b11010;      // 二进制表示的26
2  var oct = 0o32;         // 八进制表示的26
3  var dec = 26;           // 十进制表示的26
4  var hex = 0x1a;         // 十六进制表示的26

在上述示例代码中,以0b开始的数字表示二进制数,以0o开始的数字表示八进制数,以0x开始的数字表示十六进制数。其中,b、o和x不区分大小写。另外,JavaScript还允许用以0开始的数字表示八进制数,但不推荐。

(2)浮点数

浮点数可以使用标准格式和科学记数法格式表示。标准格式是指数学中小数的写法,如1.10;科学记数法格式是指将数字表示成一个数与10的n次幂相乘的形式,在程序中使用E或e后面跟一个数字的方式表示10的n次幂,如2.15E3表示2.15×103

下面通过代码演示数字型数据中浮点数的使用。首先声明4个变量,然后分别使用标准格式和科学记数法格式表示浮点数。

1 // 使用标准格式表示浮点数
2 var fNum01 = -3.12;
3 var fNum02 = 3.12;
4 // 使用科学记数法格式表示浮点数
5 var fNum03 = 3.14E5;
6 var fNum04 = 7.35E-5;

在上述示例代码中,第2行代码声明变量fNum01并赋值为使用标准格式表示的浮点数-3.12;第3行代码声明变量fNum02并赋值为使用标准格式表示的浮点数3.12;第5行代码声明变量fNum03并赋值为使用科学记数法格式表示的浮点数3.14×105;第6行代码声明变量fNum04并赋值为使用科学记数法格式表示的浮点数7.35×10-5

多学一招:数字型数据中的最大值、最小正数值和特殊值

在 JavaScript 中,当需要获取数字型数据的取值范围时,可以使用 MAX_VALUE 和MIN_VALUE。由于MAX_VALUE和MIN_VALUE是Number对象的静态属性,所以需要通过Number.MAX_VALUE、Number.MIN_VALUE的方式进行访问。

通过如下代码可以查询JavaScript中的数字型数据的最大值和最小正数值。

1 console.log(Number.MAX_VALUE);      // 输出结果为:1.7976931348623157e+308
2 console.log(Number.MIN_VALUE);      // 输出结果为:5e-324

在上述代码中,第1行代码使用Number.MAX_VALUE获取了JavaScript中的数字型数据的最大值;第2行代码使用Number.MIN_VALUE获取了JavaScript中的数字型数据的最小正数值。

在JavaScript中数字型数据有3个特殊值,分别是Infinity(无穷大)、-Infinity(无穷小)和NaN(Not a Number,非数字)。在计算中,当计算结果超出了JavaScript最大可表示的数字时,会返回Infinity;当计算结果超出了JavaScript最小可表示的数字时,会返回-Infinity;如果进行了非法的运算操作,JavaScript会返回NaN。

下面通过代码演示数字型数据中出现3个特殊值的情况。

1 console.log(Number.MAX_VALUE * 2);       // 输出结果为:Infinity
2 console.log(-Number.MAX_VALUE * 2);      // 输出结果为:-Infinity
3 console.log('abc' - 2);                 // 输出结果为:NaN

在上述代码中,第1行代码使用数字型数据的最大值乘2,输出结果为Infinity;第2行代码使用数字型数据的最大值的相反数乘2,输出结果为-Infinity;第3行代码使用字符串'abc'减2,输出结果为NaN。

3.字符串型

字符串是指计算中用于表示文本的一系列字符,在JavaScript中使用单引号(')、双引号(")和反引号(`)标注字符串。下面通过代码演示字符串型数据的使用。

1 // 使用单引号标注字符串
2 var a = '';                             // 表示空字符串
3 var str1 = '书籍';                       // 表示字符串'书籍'
4 // 使用双引号标注字符串
5 var b = "";                             // 表示空字符串
6 var str2 = "书籍是人类进步的阶梯";          // 表示字符串"书籍是人类进步的阶梯"
7 // 使用反引号标注字符串
8 var c = ``;                             // 表示空字符串
9 var str3 = `读万卷书,行万里路`;            // 表示字符串`读万卷书,行万里路`

在上述示例代码中,第2~3行代码使用单引号标注字符串,其中,第2行代码声明的变量a用于保存空字符串;第3行代码声明的变量str1用于保存字符串’书籍’;第5~6行代码使用双引号标注字符串,其中,第5行代码声明的变量b用于保存空字符串,第6行代码声明的变量str2用于保存字符串"书籍是人类进步的阶梯";第8~9行代码使用反引号标注字符串,其中,第8行代码声明的变量c用于保存空字符串,第9行代码声明的变量str3用于保存字符串`读万卷书,行万里路`。

在字符串中,单引号、双引号和反引号可以嵌套使用,示例代码如下。

1 // 单引号中嵌套双引号
2 var fruit01 = '"apple"banana';          // 字符串内容为"apple"banana
3 // 双引号中嵌套单引号
4 var fruit02 = "'pear'blueberry";         // 字符串内容为'pear'blueberry
5 // 单引号中嵌套反引号
6 var food01 = '`noodles`rice';           // 字符串内容为`noodles`rice
7 // 双引号中嵌套反引号
8 var food02 = "`fish`meat";              // 字符串内容为`fish`meat
9 // 反引号中嵌套单引号
10 var color01 = `'pink'red`;              // 字符串内容为'pink'red
11// 反引号中嵌套双引号
12 var color02 = `"black"white`;           // 字符串内容为"black"white

在上述示例代码中,第2行代码使用单引号嵌套具有双引号内容的字符串;第4行代码使用双引号嵌套具有单引号内容的字符串;第6行代码使用单引号嵌套具有反引号内容的字符串;第8行代码使用双引号嵌套具有反引号内容的字符串;第10行代码使用反引号嵌套具有单引号内容的字符串;第12行代码使用反引号嵌套具有双引号内容的字符串。

如果在单引号中使用单引号、在双引号中使用双引号,或在反引号中使用反引号,则需要使用“\”对单引号、双引号或反引号进行转义,具体如下。

● \':单引号。

● \":双引号。

● \`:反引号。

下面通过代码演示字符串的单引号、双引号和反引号嵌套使用的情况。

1 // 单引号中嵌套单引号
2 var speak = 'I\'m 小明';                 // 字符串内容为I'm 小明
3 // 双引号中嵌套双引号
4 var boyName = "\"小智\"";                // 字符串内容为"小智"
5 // 反引号中嵌套反引号
6 var girlName = `\`小丽\``;               // 字符串内容为`小丽`

在上述示例代码中,第2行代码使用单引号嵌套单引号,单引号中的\’会被转义为一个单引号字符;第4行代码使用双引号嵌套双引号,双引号中的\"会被转义为一个双引号字符;第6行代码使用反引号嵌套反引号,反引号中的\`会被转义为一个反引号字符。

字符串是由若干个字符组成的,字符的数量就是字符串的长度。在JavaScript中可以使用length属性获取整个字符串的长度,示例代码如下。

1 var str = 'I like running';
2 console.log(str.length);                // 输出结果为:14

4.空型

空型表示声明的变量未指向任何对象,它只有一个特殊的null值。下面通过代码演示数据类型为空型的情况。

1 var age = null;
2 console.log(age);                       // 输出结果为:null

在上述示例代码中,第1行代码声明了一个变量age,并赋值为null;第2行代码用于在控制台中输出变量age的值。

5.未定义型

未定义型表示声明的变量还未被赋值,此时变量的值为undefined,表示未定义。下面通过代码演示数据类型为未定义型的情况。

1 var age;
2 console.log(age);                       // 输出结果为:undefined

在上述示例代码中,由于没有为声明的变量age赋值,所以输出结果为undefined。

多学一招:字面量

字面量是指源代码中的固定值的表示法,使用字面量可以在代码中表示某个值。在阅读代码时,通过观察字面量可以快速地判断数据的类型。JavaScript中常见的字面量如下。

数字字面量:1、2、3
字符串字面量:'用户名'、"密码"
布尔字面量:true、false
数组字面量:[1, 2, 3]
对象字面量:{username: '小智', password: 123456}

在上述字面量中,关于数组和对象的使用将在后续章节中讲解。