1. 数据类型
数据类型主要分为两大类:基本数据类型和引用数据类型。
1.1 基本数据类型(原始值)
| 数据类型 | 举例 |
|---|---|
| number | 1 2 3 |
| string | '小芳' 、'a' |
| boolean | true、false |
| undefined | |
| null |
1.2 引用数据类型(引用值)
| 数据类型 | 举例 |
|---|---|
| object | {a: 1} |
| array数组 | [1, 2, 3] |
| function函数 | function test(){} |
| date日期 | new Date() |
| regexp正则 | /1$/ |
2. 类型转换
将一个数据类型转为另一个数据类型,分为两类:显示类型转换和隐式类型转换。
2.1 显示类型转换
通过包装类或系统方法显示的转换成另一个数据类型。
console.log(Number("a")); // NaN
console.log(Number("1a")); // NaN
console.log(Number(undefined));// NaN
console.log(Number(null));// 0
console.log(Number(false)); // 0
console.log(Number(true)); // 1
console.log(Number(null)); // 0
console.log(Number("")); // 0
console.log(Boolean("a")); // true
console.log(Boolean('0')); // true
console.log(Boolean(0)); // false
console.log(Boolean(undefined)); // false
console.log(Boolean(null)); // false
console.log(Boolean("")); // false
console.log(parseInt("a")); // NaN
console.log(parseInt("1a")); // 1
console.log(parseInt(undefined)); // NaN
console.log(parseInt(false)); // NaN
console.log(parseInt(true)); // NaN
console.log(parseInt(null)); // NaN
console.log(parseInt("")); // NaN
*2.1 隐式类型转换
console.log("a" + 1); // a1 -> string
console.log("a" + false); // afalse -> string
console.log(true + true); // 2 -> number
console.log("1" + 1); // 11 -> string
console.log(1 + undefined); // NaN -> number
console.log(1 + null); // 1 -> number
console.log("2" * 2); // 4 -> number
console.log("3" - 3); // 0 -> number
console.log("1" > 1); // false -> number
console.log(true == 1); // true -> number
console.log(-'1'); // -1 -> number
3. 总结
- 数据类型有两类:基本数据类型(number、string、boolean、undefined、null)和引用数据类型。
- null、undefined、0、空串('')、false转换成boolean都为false。
- 两个值进行相加时,只要有一个是字符串则转为字符串。
- -、*、/、%、>、<都转成数字进行运算。
- 当一个值前有+或者-时,转化为数字类型。
- Number(undefined)==NaN,Number(null)==0