JavaScript中的类型转换
强制类型转换
字符转数值
①parseInt():从左向右检测,遇到数字转换,遇到非数字停止,第一位就是非数字,直接NaN,认为小数点是非数字。
var str = "123";
var num = parseInt(str);
console.log(str); //"123"
console.log(typeof str); //string
console.log(num); //123
console.log(typeof num); //number
var str = "123hello";
var num = parseInt(str);
console.log(num); //123
var str = "hello465";
var num = parseInt(str);
console.log(num); //NaN
var str = "123.456万";
var num = parseInt(str);
console.log(num); //123
②parseFloat():从左向右检测,遇到数字转换,遇到非数字停止,第一位就是非数字,直接NaN,可以识别小数点。
var str = "123.456万";
var num = parseFloat(str);
console.log(num); //123.456
③Math.round():严格转换,取最近的整数,不允许出现任何非数字,出现即为NaN。
var str = "123.789";
var num = Math.round(str);
console.log(num); //124
var str = "-123.789";
var num = Math.round(str);
console.log(num); //-124
④Number():严格转换,可以识别小数点,不允许出现任何非数字,出现即为NaN。
var str = "123.7a89";
var num = Number(str);
console.log(num); //NaN
var str = "123.6";
var num = Number(str);
console.log(num); //123.6
数值转字符
①num.toString():直接转换,相当于给数值添加一个引号。
var num = 123;
var str = num.toString();
console.log(str); //"123"
console.log(typeof str); //string
②num.toFixed(n);与toString一致,可以四舍五入保留n位小数。
var num = 123.456;
var str = num.toString(2);
console.log(str); //123.46
转Boolean类型
调用Boolean()函数来将a转换为布尔值
a = Boolean()函数
数字 — >布尔型 除0,NaN为flase,其余都为true
字符串—>布尔型 除空串,其余都是true()
Null—>布尔型 flase
undefined —>布尔型 flase
对象也会转换为true
隐式类型转换
①数字转字符:与一个空字符相加(+“”),会进行字符串的拼接。
②转数值:任何值做- * / 运算时都会自动转换为num
可以通过一个值-0 ,*1 ,/1将其转换为Number
③if的小括号里:任何类型最终都被转成布尔型。
数值:非0为true;
字符:非空为true;
三大特殊值undefined,null,NaN为false:都为false。
对象,数组,函数:都为true。