提示

本文主要介绍 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);