For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
正常的运算已经让人承受不住,为什么还有隐式转换?因为js属于弱类型语言,乍一看,包罗万象,其实是规则不强硬引起的放荡!
步入正题,其实js中隐式类型转换是有规律可循的,先来看一下各类型之间的运算情况:
1.对象与布尔
对象和布尔值进行比较时,对象先转换为字符串,然后再转换为数字,布尔值直接转换为数字
[] == true; //false []转换为字符串'',然后转换为数字0,true转换为数字1,所以为false
2. 对象和字符串
对象和字符串进行比较时,对象转换为字符串,然后两者进行比较
[1,2,3] == '1,2,3' // true [1,2,3]转化为'1,2,3',然后和'1,2,3', 所以结果为true;
3. 对象和数字
对象和数字进行比较时,对象先转换为字符串,然后转换为数字,再和数字进行比较
[1] == 1; // true `对象先转换为字符串再转换为数字,二者再比较 [1] => '1' => 1 所以结果为true
4. 字符串和数字
字符串和数字进行比较时,字符串转换成数字,二者再比较
'1' == 1 // true
5. 字符串和布尔值
字符串和布尔值进行比较时,二者全部转换成数值再比较
'1' == true; // true
6. 布尔值和数字
布尔值和数字进行比较时,布尔转换为数字,二者比较
true == 1 // true
7. 对象和字符串
对象和字符串进行比较时,对象转换为字符串,然后两者进行比较
[1,2,3] == '1,2,3' // true [1,2,3]转化为'1,2,3',然后和'1,2,3', 所以结果为true;