前面我们说到一共有7中基本数据类型,分别是数字(Number), 字符串(String), 布尔值(Boolean), null, undefined,Symbol和对象(Object),其中除了对象以外的所有基本数据类型都属于简单数据类型,对象属于复杂数据类型。那么今天来总结下几种数据类型的转换方法, 本文暂时不考虑Symbol类型。
- 转换为String(3种方法)
1.1 toString方法
比如数字可以用toString方法可以转换为字符串,null和undefinde不能使用.toString(),会报错,对象的.toString()方法会返回'[object Object]'.
(1).toString() // "1"
var obj = {a: 1};
obj.toString(); // "[object Object]"
1.2 另外两种对所有类型都可以使用,使用面更广。分别是String(a), a + ''.(a表示一个变量)
举例来说:
var a = 1;
var obj = {a: 1};
//Number
String(1); // "1"
1 + '' ; // "1"
// null
String(null) // "null"
null + '' // "null"
// undefined
String(undefined) // "undefined"
undefined + '' // "undefined"
// object
String(obj) // "[object Object]"
obj + ''; // "[object Object]"
- 转换为Boolean类型(两种方法)
分别是使用Boolean(a) 和 !!a . (a是一个变量)
举例如下:
Boolean(null) // false
!!null // false
-
五个falsy值
分别是0, NaN, null, undefined, ''(空字符串)。就是这五个值在转换为布尔值都是false,其中像空数组[], 空对象{}转换为布尔值都是true. -
转换为数字(5种方法)
1. Number(x)
2. parseInt(x, 10) // 10代表十进制
3. parseFloat(x) // 转为小数
4. x - 0
5. +x
返回值要么是个数字,要么是NaN(不是数字)。
通过笔者的实践,有两个注意点如下:
(1) 对于null转为数字, parseInt和parseFloat会转为NaN,其他转换为0.
Number(null); // 0
parseInt(null); // NaN
parseFloat(null); // NaN
null + 0; // 0
+null // 0
(2) 对于字符串,一般情况下要么转为对应数字,要么显示NaN,但是字符串前几位是数字后面有字母,那么使用parseInt, parseFloat会把第一个字母前的数字返回。
var a = "123xfaf2342";
parseInt(a); // 123
parseFloat(a); // 123
网友评论