JavaScript——类型转换
显性类型转换:
1、转数字:Number(mix),把mix转为数值类型
eg:Number('-123');//-123, Number(null); //0
Number(undefined); //NaN Number('123abc'); //NaN
看起来不是数字的基本转化为NaN,但仍为数值类型
2、转整数:parseInt(demo)/parseInt(demo,radix)
1)、把demo转化为整数
eg:parseInt('123.26'); //123,其他的不像数字的都为NaN
2)、radix:2~36进制,以这些进制为基底把demo转换为十进制
eg:parseInt('10',16); //16
3、转浮点型:parseFloat(demo)
从头看到除 . 外的非数字位截止,把demo转为浮点值,整数仍为整数
eg:parseFloat('100.bg'); //100 parseFloat('100.485abc'); //100.458
4、转字符串型:String(mix),把mix转化为字符串类型
eg:String(123); //’123’
5、转布尔型:Boolean(mix),把mix转化为布尔类型
eg:Boolean(''); //false Boolean(' '); //true
6、转字符串型:toString()/toString(radix)
1)、把目标转为字符串型
eg:var demo=123;
demo.toString(); //'123';
2)、以十进制为基底把目标值转化为目标进制radix的字符串型
eg:var demo=123;
demo.toString(8); //'173'
注:undefined、null不可转换
隐性类型转换:
1、isNaN(mix)
系统先进行Number(mix)转化,把值再和NaN对比,结果相等为true,不是为false
eg:isNaN('123'); //true isNaN('abc'); //false
isNaN(null); //false,因为Number(null)=0
2、++、--、+、-(正负):含隐性转化Number(mix)
eg:var a ='abc';a ++; 结果a=NaN
先进行Number(a)=NaN,再a++还是为NaN,注意a的类型是Number,因为进行了转化
3、+(加号):转字符串类型
eg:'abc'+ 1; // 'abc1'
4、-、*、/、%:含隐性转化Number(mix)
5、&&、||、!:含隐性转化布尔型
eg:! 8; //false,先把数值型8转换为布尔型true
6、>、<、>=、<= :含隐性转化Number(mix)
eg: 1 > '2'; //把字符'2'隐性转换为数值2
7、==、!= :含隐性转化Number(mix)
注: NaN != NaN undefind == null
不发生类型转换:
1、===:绝对等于
eg:1 === ‘1’; //false
2、!==:绝对不等于
eg:NaN !== NaN; //true,NaN为特殊,它绝对不等于自己