搜索
写经验 领红包
 > 房产

js隐式转换(js隐式类型转化的方法)

导语:js中的隐式转换

js 隐式转换(js隐式类型转化的方法)

js中的隐式转换

小白至IT

正常的运算已经让人承受不住,为什么还有隐式转换?因为js属于弱类型语言,乍一看,包罗万象,其实是规则不强硬引起的放荡!

步入正题,其实js中隐式类型转换是有规律可循的,先来看一下各类型之间的运算情况:

1.对象与布尔

对象和布尔值进行比较时,对象先转换为字符串,然后再转换为数字,布尔值直接转换为数字

[] == true;  //false  []转换为字符串&39;,然后转换为数字0,true转换为数字1,所以为false

2.对象和字符串

对象和字符串进行比较时,对象转换为字符串,然后两者进行比较

[1,2,3] == &39; // true  [1,2,3]转化为&39;,然后和&39;, 所以结果为true;

3.对象和数字

对象和数字进行比较时,对象先转换为字符串,然后转换为数字,再和数字进行比较

[1] == 1;  // true  `对象先转换为字符串再转换为数字,二者再比较 [1] => &39; => 1 所以结果为true

4.字符串和数字

字符串和数字进行比较时,字符串转换成数字,二者再比较

&39; == 1 // true

5.字符串和布尔值

字符串和布尔值进行比较时,二者全部转换成数值再比较

&39; == true; // true 

6.布尔值和数字

布尔值和数字进行比较时,布尔转换为数字,二者比较

true == 1 // true

7.对象和字符串

对象和字符串进行比较时,对象转换为字符串,然后两者进行比较

[1,2,3] == &39; // true  [1,2,3]转化为&39;,然后和&39;, 所以结果为true;

其实规律很简单,大家可以记下边这个图

如图,任意两种类型比较时,如果不是同一个类型比较的话,则按如图方式进行相应类型转换,如对象和布尔比较的话,对象 => 字符串 => 数值 布尔值 => 数值。undefined与null是特殊情况,undefined==null为true。

本文内容由小萱整理编辑!