提示
本文主要介绍 JavaScript 的基础数据类型。@ermo
# 数据类型
变量中存储的值有不同的类型,用于不同方式的计算。
# 数字(number)
js 中的数字类型很好理解,就是数学中的数字。js 中没有区分整型和浮点型(小数),将这些数字统称为数字类型。
十进制、八进制、二进制也属于数字类型。
var n1 = 10;
var n2 = -10;
var n21 = -0.1;
var n22 = 0.01;
// 科学计算法
var n3 = 2e2;
// 十六进制
var n4 = 0x1234;
// 八进制
var n5 = 0o1234;
// 二进制
var n6 = 0b0001;
# 布尔(boolean)
布尔(boolean)类型有2个值:true 和 false。
布尔类型的值常用于条件判断。
var gender = true;
var hasEat = false;
# 字符串(string)
js 中的字符串使用成对的单引号或者双引号包裹。当其他类型的值使用单引号或者双引号后,都成为字符串,不能进行原有类型的相关运算。
var n1 = 'name';
var n2 = 'age';
var n3 = '1';
n3 = n3 + 1;
console.log(n3);
var n4 = "true";
上例中变量 n3
输出的值是字符串 11
,当字符串使用 +
时,它的作用是连接2个值,而不是进行数学逻辑运算。
# 空值
js 中的空值有2种类型:undefined 和 null。声明的变量没有进行初始化赋值,它的值就是 undefined。在声明变量时赋值为 null 时,它的值就是 null,表示内存没有给当前变量分配内存空间。
var name = null;
var age;
// null
console.log(name);
// undefined
console.log(age);
# typeof
可以通过 typeof
判断变量具体的数据类型。
// number
var n1 = 1;
// boolean
var n2 = true;
// string
var n3 = '1';
// object
var n4 = null;
// undefined
var n5;
var r1 = typeof n1;
var r2 = typeof n2;
var r3 = typeof n3;
var r4 = typeof n4;
var r5 = typeof n5;
console.log(r1);
console.log(r2);
console.log(r3);
console.log(r4);
console.log(r5);
上例中 n4
的具体类型为 object 引用类型,这是 js 中一种复杂的数据类型,后续会学习到。
# 数据类型的转换
为了使用对应数据类型相应的运算,我们需要进行数据类型转换。
(1)转为 number 类型
使用 Number()
可以将其他数据类型转换为 number 类型,当转换失败后,会返回 NaN(Not a Number)。null 值转换为 0.
var n1 = 'name';
var n2 = '10';
var n3 = null;
var n4;
// NaN
var r1 = Number(n1);
// 10
var r2 = Number(n2);
// 0
var r3 = Number(n3);
// NaN
var r4 = Number(n4);
console.log(r1);
console.log(r2);
console.log(r3);
console.log(r4);
parseInt()
方法和 Number()
方法的作用相同,也是转为为数字。区别在于 parseInt()
方法从左边第一位字符开始转换,遇到不合法字符时停止转换,将之前的内容返回。
var n5 = '123abcd';
var r5 = parseInt(n5);
// 123
console.log(r5);
parseFloat()
方法解析的原理和 parseInt()
相同,区别在于前者可以解析到小数部分,后者只能解析到整数部分。
// 123.123
var n6 = '123.123abc';
var r6 = parseFloat(n6);
console.log(r6);
(2)转为 string 类型
String()
方法可以将值转换为 string 字符串。
var n1 = true;
var r1 = String(n1);
// true
console.log(r1);
console.log(typeof r1);
toString()
方法的使用是 变量.toString()
,同样可以转为字符串。
var n1 = 1234;
var r1 = n1.toString();
console.log(r1);
console.log(typeof r1);
(3)转为 boolean 类型
Boolean()
方法可以将值转换为布尔类型,转换后的值只有2种:true 和 false。
在 js 中有5种值会转换为 false,其余的值都为 true,分别是:
NaN、0、空字符串、undfined、null。
var n1 = "name";
var r1 = Boolean(n1);
// true
console.log(r1);
// boolean
console.log(typeof r1);