JS的类型转换
1.强制转换
通过String(),Number(),Boolean()函数强制转换
var str=123;
var str1='123';
console.log(typeof str);
console.log(typeof str1);
console.log(typeof String(str));
console.log(typeof Number(str1));
输出
number
string
string
number
----------------------------------------------------------------------------------------------------------------------------------
2.隐式转换
JavaScript的数据类型分为6种,分别为null,undefined,boolean,number,object。object是引用类型,其他5种是基本类型或者是原始类型。我们可以用typeof方法查看数据类型。不同类型的变量相比较要先转换类型,即隐式转换。隐试转换通常发生在运算符+、-、*、/、=、>、<。
console.log(typeof '11')//输出string
console.log(typeog 11) //输出number
console.log('11' < 4 ) //输出fals
1.字符串+数字=字符串(字符串拼接)
2.数字-字符串=数字(或者NaN),字符串-数字也是一样。结果取决于字符串是否为纯数字
3.*、/、<、>和减法一样
隐式转换的其他例子:
console.log(10+'20') //2010
console.log(10-'20')//-10 number
console.log(10-'one') //NaN not a number
console.log(10-'101a') //NaN
console.log(10*'20') //200 number
console.log('10'*'20') //200 number
console.log(20/'10') //2 number
console.log('20'/'10') //2 number
console.log('20'/'one') //NaN
3.关于==
1.undefined等于null
2.字符串和数字比较时,字符串转数字
3.数字为布尔比较时,布尔转数字
4.字符串和布尔比较时,二者转数字
(只有转换成数字了才可以进行运算和比较)
console.log(undefined==null) //true
console.log('0'==0) //true 字符串转数字
console.log(0==false) //true 布尔转数字
console.log('0'==false) //2个都转成数字
console.log(null==false) //false
console.log(undefined==false)//false