转换为字符串类型
toString()
toString()函数可以把Number类型,Boolean类型转换成字符串类型,返回转换后的字符串,原值并不会改变
- 注意点:
1.null和undefined不能调用这个方法转换
2.toString()括号内可以接收一个整数,表示需要将Number类型转换为多少进制
String()
由于null和undefined不能调用toString(),所以有了String()
括号内接收需要被转换的数据
- 注意点:可以将任何类型转换为字符串类型,包括null和undefined
算数运算符
由于上两种方法过于复杂,我们可以使用JavaScript语法糖
利用+""的形式将任意数据类型转换为字符串类型
- 123 + "" -------> "123" + "" -------> "123"
转换为Number类型
Number()函数
-
对于字符串:
- 如果字符串中都是数字, 那么就正常转换
- 如果字符串中不仅仅有数字, 那么转换为NaN
- 如果字符串中没有内容""或者" ", 那么就转换为0
-
对于布尔类型:
- true转换为1
- false转换为0
-
对于null:
- 转换为0
-
对于undefined:
- 转换为NaN
-
总结:
空字符串/false/null --> 0
不仅仅包含数字的字符串和undefined --> 转换为NaN
其它的正常转换
利用算数运算符转换
在需要转换的类型前面加上+加号或者-减号即可
- 注意点:
+加号不会改变数据的正负性
-减号会改变数据的正负性
var str1 = "123";
var str2 = "3.14";
var flag1 = true;
var flag2 = false;
var n = null;
var u = undefined;
var res1 = +str1;
console.log(res1);//123
console.log(typeof res1);//Number
var res2 = -str1;
console.log(res2);//-123
console.log(typeof res2);//Number
var res3 = +str2;
console.log(res3);//3.14
var res4 = +flag1;
console.log(res4);//1
var res5 = +flag2;
console.log(res5);//0
var res6 = +n;
console.log(res6);//0
var res7 = +u;
console.log(res7);//NaN
parseInt/parseFloat
通过Number函数或者通过+-运算符转换, 都不能转换复杂的字符串
-
所以就有第三种转换的方式, 通过parseInt()/parseFloat()函数
parseInt: 只能提取整数
parseFloat: 可以提取小数
-
注意点:
parseInt/parseFloat , 会从左至右的提取, 一旦被中断后续的就提取不到了
对于parseFloat来说, 只能提取一个点, 第二个点会被中断
转换为Boolean类型
-
对于字符串而言:
- 只要不是空字符串(没有任何内容), 都会转换为false
- 只要字符串中有内容(包含空格/Table), 都会转换为true
-
对于Number类型而言:
- 只要不是0都会转换为true, 只有0会转换为false
- 对于null和undefined而言, 都会转换为false
对于NaN也会转换为false
总结: "" / 0 / null / undefined / NaN --> false