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}
在上述字面量中,关于数组和对象的使用将在后续章节中讲解。