JS数据类型转换
2018-12-06 本文已影响0人
哎呦_連啓
转布尔值
Boolean类型只有两个字面值:true和false。
在条件判断时会出现假的(false)情况为:“ ”,0,NaN,null,undefined,false,只有这几种情况转换为false;与之相反的,什么为真呢?其实除了假都是真,包括所有对象。
转字符串
- toString()
要把一个值转换为字符串有两种方式,第一种是使用几乎每个值都有的toString()。但是有一点需要注意的是null和undefined值没有这个方法。
var colors = ['red','blue','green'];
var num = 123;
var found = true;
console.log(colors.toString()); //"red,blue,green"
console.log(num.toString()); //"123"
console.log(found.toString()); //"true"
- String()
在不知道要转换的值是null或undefined的情况下可以使用转型函数String(),这个函数可以将任何值转换为字符串
var colors = ['red','blue','green'];
var num = 123;
var found = true;
console.log(String(colors)); // "red,blue,green"
console.log(String(num)); // "123"
console.log(String(found)); // "true"
console.log(String(null)); // "null"
console.log(String(undefined)); // "undefined"
转number数据类型
其他类型转number类型主要有Number(),parseFloat(),parseInt()这三种强制类型转换
- Number()
Number()属于严格转换。此方法转换较为严格,当全部为数字或者解析全部为数字时才会转换,出现非数字或者空格时返回NaN,当遇到空字符串、null或者布尔类型false时返回0,当遇到布尔类型true时返回1,遇到undefined时返回NaN。NaN的意思是not a number,不是一个数值,但是NaN属于number数据类型,NaN和谁都不相等,包括他自己。判断是否为非有效数字时用isNaN(),是非有效数字返回true,有效数字返回false
console.log(Number(123)); //123
console.log(Number('123')); //123
console.log(Number('123aa')); //NaN
console.log(Number('')); //0
console.log(Number([])); //0
console.log(Number(null)); //0
console.log(Number(false)); //0
console.log(Number(true)); //1
console.log(Number(undefined)); //NaN
- parseInt()
该方法可以把其他数据类型转换为整数,只取整数部分,当遇到以非数字开头的数据类型时,返回NaN。
console.log(parseInt(123)); //123
console.log(parseInt(123.23)); //123
console.log(parseInt('123.23')); //123
console.log(parseInt('123aa')); //123
console.log(parseInt('.123aa')); //NaN
console.log(parseInt('abc')); //NaN
console.log(parseInt('abc123')); //NaN
- parseFloat()
parseFloat()和parseInt()都属于非严格转换,该方法是保留浮点数
console.log(parseFloat(123)); //123
console.log(parseFloat(123.23)); //123.23
console.log(parseFloat('123.23')); //123.23
console.log(parseFloat('123aa')); //123
console.log(parseFloat('.123aa')); //0.123
console.log(parseFloat('ab123.23aa')); //NaN
console.log(parseFloat('abc')); //NaN