zoukankan      html  css  js  c++  java
  • 相等运算符的比较规则,你都知道吗?

      相等运算符:

      使用相等运算符来比较两个值是否相等,相等返回true,否则返回false。

      1、对于简单类型来说,如数字、布尔值、字符串,比较的是两者的值是否相等。

      1==1  // true

      2==1  // false

      true==true  // true

      true==false  // false

      "ajax"=="ajax"  // true

      "ajax"=="AJAX"  // false

      "ajax"=="javascript"  // false

      2、对于引用类型来说,如对象、数组等,比较的是两者的引用是否相等。也就是说,如果有两个数组,它们所包含的的元素是一样的,但是比较的结果仍然为false。

      var a = new Array(1,2,3);

      var b = a;

      var c = new Array(3,1,2);

      var d = new Array(1,2,3);

      a==b  // true

      a==c  // false

      a==d  // false

      

      更详细的比较规则是:当两个值的类型相同时,就比较它们的值或者引用是否完全相等,当两个值类型不同时,他们也有可能相等。

      * null与undefined相等。

      * 数字和字符串比较,先将字符串转换为数字,再比较值。

      * 布尔值和其它类型的值比较时,先将布尔值转换为数字再比较。true转换为1,false转换为0。

      * 当数字、布尔值或字符串与对象比较时,先将对象转换为简单类型再比较。javascript的内置对象一般会先尝试valueOf()转换,再尝试toString()转换。比较特殊是是Date类,它会先执行toString()转换。

      var a;

      null==a  // true

      1=="1"  // true。将字符串1转换为数值1,再比较

      1==true  // true。将布尔值true转换为1,再比较

      0==false  // true。将布尔值false转换为0,再比较

      "1,2,3"==[1,2,3]  // true。

      

      补充:

      * javascript中只要是对象都存在toString方法,该方法作用是:将调用该方法的值转换为字符串返回。

      *valueOf()方法用于返回对象的原始值,该方法是数组对象的默认方法。

      

  • 相关阅读:
    第12组 Alpha事后诸葛亮
    第12组 Alpha冲刺(6/6)
    第12组 Alpha冲刺(5/6)
    2019 SDN上机第4次作业
    2019 SDN阅读作业
    第12组 Alpha冲刺(4/6)
    第12组 Alpha冲刺(3/6)
    第12组 Alpha冲刺(2/6)
    2019 SDN上机第3次作业
    第10组 Alpha冲刺(4/6)
  • 原文地址:https://www.cnblogs.com/jf-67/p/6486557.html
Copyright © 2011-2022 走看看