隐式转换为数值
//1.数值-字符串=数值
var n=5-'1';
console.log(n,typeof n);
//2.字符串/字符串=数值
var n2='4'/'2';
console.log(n2,typeof n2);
//3.布尔型*字符串=数值
var n3=true*'3';
console.log(n3,typeof n3);//NaN
//4.数值+未定义型(undefined)=数值
var n4=1+undefined;
console.log(n4,typeof n4);
//5.数值+空=数值
var n5=1+null;//1
console.log(n5,typeof n5);
//6.数值-字母和数字组合的字符串=NaN
var n6=4-'1a';
console.log(n6,typeof n6);
//7.测试是否为NaN
console.log(1+NaN,5-NaN);
强制转换为数值 Number
//字符型=数值
var m1=Number('4');
console.log(m1,typeof m1);
//数字加字母型=NaN
var m2=Number('1a');
console.log(m2,typeof m2);
//布尔型=数值型
var m3=Number(true);
console.log(m3,typeof m3)
var m4=Number(false);
console.log(m4,typeof m4);
//未定义型和空转数值=NaN和数值
var m5=Number(undefined);
console.log(m5,typeof m5);
var m6=Number(null);
console.log(m6,typeof m6);
强制转换为整型数 parseInt(数值和字符串)
//小数转整数型
var p1=parseInt(1.5);
console.log(p1);
var p2=parseInt(1.9);
console.log(p2);
//字符串转整型
//字母在后的字符串=整型
var p3=parseInt('3.14a');
console.log(p3);//3
//字母在前的字符串=NaN
var p4=parseInt('a3.14');
console.log(p4);//NaN
//其他类型(除了小数和字符串)=NaN
var p5=parseInt(true);
console.log(p5);
强制转换为浮点 parseFloat
var o1=parseFloat('3.14a');
console.log(o1);
var o2=parseFloat('a3.14');
console.log(o2);
var o3=parseFloat('6');
console.log(o3);
强制转换为字符串(暂时只用于数值和布尔型)
var k1=true;
var str1=k1.toString();//'true'
var k2=1;
var str2=k2.toString();//'1'
console.log(str1,typeof str1,str2,typeof str2);