目录
前言
在计算机中,不同的数据所占用的存储空间是不同的,为了充分利用储存空间,在编程语言中定义了多种不同的数据类型。本节将对数据类型以及数据类型转换进行介绍。
一、变量的数据类型
JavaScript 是一种弱类型语言,不用提前声明变量的数据类型。在程序运行过程中,变量的数据类型会被自动确定。
- 强类型语言:如Java、C 等
- 弱类型语言:JavaScript 等
//强类型语言(Java)
int num = 10; //这里的变量 num 是 int 型(整数型)
//弱类型语言(JavaScript)
var num = 10; //这里的变量 num 一开始是一个数字型
num = 'abc'; //赋值一个字符串,现在 num 变成了字符串型
从以上代码可以看出,JavaScript 变量的数据类型,是在程序运行时根据等号右边的值来确定的。
二、数据类型分类
JavaScript中的数据类型分为两大类,基本数据类型和复杂数据类型(也称为引用数据类型),如图所示。
在本章节只讲述基本数据类型,复杂数据类型将会在后面讲述。
1、数字型
数字型(Number),包含整型值和浮点型值。
var num1 = 21; //整型值(整数)
var num2 = 0.21; //浮点型值(小数)
① 进制
常见的进制有二进制、八进制、十进制和十六进制,在一般情况下,数字都是使用十进制来表示的。
- 二进制数: 机器语言,由1和0组成,逢2进位。
- 八进制数: 在数字开头加上0,八进制数由0 ~ 7组成,逢8进位
//八进制数
var num1 = 07;
console.log(num1); // 输出结果:7
var num2 = 010;
console.log(num2); // 输出结果:8
- 十进制数: 是组成以10为基础的数字系统,有0~9组成,逢10进位
- 十六进制数: 在数字开头加上0x,十六进制数由0 ~ 9,a ~ f (或 A~F)组成。(在十六进制数中 “ x ” 和 “ a ~ f ” 不区分大小写)
//十六进制数
var num1 = 0x9;
console.log(num1); // 输出结果:9
var num2 = 0xa;
console.log(num2); // 输出结果:10
② 范围
数字型的最大值和最小值可以通过如下代码获得
- 最大值: 1.7976931348623157e+308
console.log(Number.MAX_VALUE); //输出结果:1.7976931348623157e+308
- 最小值: 5e-324
console.log(Number.MIN_VALUE); //输出结果:5e-324
在输出结果中,使用了科学计数法来表示。
③ 特殊值
- Infinity(无穷大) :
console.log(Number.MAX_VALUE * 2); // 输出结果:Infinity
- -Infinity(无穷小):
console.log(-Number.MAX_VALUE * 2); // 输出结果:-Infinity
- NaN(非数值):
console.log('abc' - 100); // 输出结果:NaN
- isNaN: 用来判断一个变量是否为非数字的类型,返回值为true表示非数字,false表示是数字
console.log(isNaN(12)); // 输出结果:false
console.log(isNaN('abc')); // 输出结果:true
2、布尔型
布尔型(Boolean),包含 true 和 false 两个布尔型值,表示事物的 “ 真 ” 和 “ 假 ”,通常用于逻辑判断。
console.log(true);