标签搜索

JavaScript——类型转换

橙cc
2020-08-21 / 0 评论 / 32 阅读 / 正在检测是否收录...

显性类型转换:

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'

注:undefinednull不可转换

隐性类型转换

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

解释:

  1. 先进行Number(a)=NaN
  2. 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为特殊,它绝对不等于自己
1

评论 (0)

取消