美文网首页
js在不同类型的值比较时的隐性类型转换

js在不同类型的值比较时的隐性类型转换

作者: 乖乖果效36 | 来源:发表于2018-09-26 17:43 被阅读15次

我们知道在js中,==是进行的值比较,在比较运算之前,js会将不同类型的值转换为相同类型的值在进行比较,转换情况如下:
1:当比较对象中存在Boolean类型时,任意值与布尔值进行比较的时候都会转换为数值进行比较,(引用类型转换了Boolean均为true;数值0为false,其余均为true;空字符串为false,其余均为true。
2:当比较对象中存在Object类型时,js会尝试使用valueOf方法或toString()放将对象转换为描述对象的数值或字符串
3:数字与字符串比较时,字符串转换为数字,字符串转换数字失败时为NaN,出现情况4;
4:比较对象中存在NaN时均返回false;
5:null和undefined比较时不会进行类型转换但是他们相等,因为undefined派生于null,ECMAScript标准规定二者进行相等行测试时返回true;
举个例子:

[] == false 
=> [].valueOf() == false 
=> [].toString() == false 
=> "" == false 
=> true


{} == false 
=> {}.valueOf() == false
=> {}.toString() == false 
=> "[object object]" == false 
=> false

另:
===等号比较时其实就是不进行类型转换,即通常我们所理解的类型也会进行比较


本文来自 常驻客 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/local_people/article/details/71358194?utm_source=copy

相关文章

  • js在不同类型的值比较时的隐性类型转换

    我们知道在js中,==是进行的值比较,在比较运算之前,js会将不同类型的值转换为相同类型的值在进行比较,转换情况如...

  • js对象比较

    在js 判断相等常见的就是 == (等同)和===(恒等);==, 两边值类型不同的时候,要先进行类型转换,再比较...

  • JS数据隐式转换

    一、js中的不同的数据类型之间的比较转换规则如下: 1. 1 对象和布尔值比较 对象和布尔值进行比较时,对象先转换...

  • vscode主题颜色

    vscode主题颜色 prototype javascript双等号引起的类型转换,js隐性类型转换步骤 code...

  • js中的类型转换

    在js中数据转换分为3种:隐式类型转换,强制类型转换,函数转换 1.隐式类型转换 (1):运算符转换 js中的值在...

  • js中的布尔类型转换

    js中的布尔类型转换 在js中经常会遇到其他类型的值转换为布尔类型的情况,总的来说js中的值可以分为以下两类 :(...

  • JS中的!=、== 、!==、===的用法和区别

    == 和 != 比较若类型不同,先偿试转换类型,再作值比较,最后返回值比较结果 。而 === 和 !== 只有在相...

  • ==、===与Object.is()对比

    ==:等同,比较运算符,两边值类型不同的时候,先进行类型转换,再比较;===:恒等,严格比较运算符,不做类型转换,...

  • JS中的=、== 、!==、===的用法和区别。

    == 和 != 比较若类型不同,先偿试转换类型,再作值比较,最后返回值比较结果。而=== 和 !== 只有在相同类...

  • JavaScript中两个等号 == 和 三个等号 === 的区

    == 两边值类型不同的时候,要先进行类型转换为同一类型后,再比较值是否相等。===只有类型和值都相等时才返回true

网友评论

      本文标题:js在不同类型的值比较时的隐性类型转换

      本文链接:https://www.haomeiwen.com/subject/exjjoftx.html