显性类型转换:
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,其他的不像数字的都为NaN2)、radix:2~36进制,以这些进制为基底把demo转换为十进制
eg:
parseInt('10', 16); // 163、转浮点型:parseFloat(demo)
从头看到除 . 外的非数字位截止,把demo转为浮点值,整数仍为整数
eg:
parseFloat('100.bg'); // 100
parseFloat('100.485abc'); // 100.4584、转字符串型:String(mix),把mix转化为字符串类型
eg:
String(123); // '123'5、转布尔型:Boolean(mix),把mix转化为布尔类型
eg:
Boolean(''); // false
Boolean(' '); // true6、转字符串型: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)=02、++、--、+、-(正负):含隐性转化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转换为布尔型true6、>、<、>=、<= :含隐性转化Number(mix)
eg:
1 > '2'; //把字符'2'隐性转换为数值27、==、!= :含隐性转化Number(mix)
注:
NaN != NaN // true
undefined == null // true不发生类型转换:
1、===:绝对等于
eg:
1 === '1'; //false2、!==:绝对不等于
eg:
NaN !== NaN; //true,NaN为特殊,它绝对不等于自己
评论 (0)