显性类型转换:
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 // true
undefined == null // true
不发生类型转换:
1、===
:绝对等于
eg:
1 === '1'; //false
2、!==
:绝对不等于
eg:
NaN !== NaN; //true,NaN为特殊,它绝对不等于自己
评论 (0)