zoukankan      html  css  js  c++  java
  • javascript中的==与===

    一、主要区别:

    1.通俗的来说,==是值的比较,而===不仅仅比较值,还比较引用的是否是同一个对象。

    2.用==来比较的时候,如果两个数的操作数的类型不一样,会先转换。而===的操作数则不会进行任何转换。

    3.if()里面用的是==判断,case里面用的是===判断。

      例如if(null==undefined) 返回true

      switch(null){

       case "undefined":

        //这里面不会执行

       break;

       }

    二、===比较详解

    1.如果2个值类型不同,则他们不相等。

    2.如果两个值都是null,或者undefined,或者一个是null一个是undefined,则他们不相等。

    3.如果有一个,或者两个都是NaN,则他们不相等。(NaN和任何对象任何值都不等,包括他本身。如果if(x!==x) 返回true,则说明X为NaN)。

    4.如果两个值都是数字且数值相等的话,那么两者也相等。0 和-0也一样相等。

    5.如果是字符串,内容、长度、编码不一样的话,那么他们不等。

    6.如果两者引用值指向同一引用对象,则他们相等。如果指向不同的引用值,即使他们有完全一样的熟悉,同样也不相等。

    三、==比较详解

    1.如果两个值都是null,或者undefined,则他们相等。

    2.如果一个是数字,另一个是字符串,先将字符串转换成数字,再比较。

    3.如果其中有一个是boolean值,先把true转为1或者false转为0,再比较。

    4.如果一个是对象,一个是数字或者字符串,则先将对象转换成原始值再进行比较。

    ==除了以上4以外,其他的不同类型之前的比较都不等。即使是两个对象类型一样,但不是引用同一个对象,也不一样。

    四、具体案例

    "A"===String("A")//true

    "A"===new String("A")//false

    []==[]//false

    {}=={}//false

    2==[[[[2]]]]//true

    var a=/124/,b=/124/;a==b//false

    var a = Function.length,b= new Function().lenth;a==b;//false

    var a = Date(0),b=new Date(0),c=new Date();//三者任意比较都是false

  • 相关阅读:
    广佛肇城轨年内通车 佛山西站预计2017年中通车
    MTK+Android编译
    电量检测芯片BQ27510使用心得
    放大电路的分析方法
    放大电路的分析方法
    模拟电子放大电路分析
    模拟电子技术二极管
    unsigned 整型实现无溢出运算
    hdu 5317 RGCDQ(前缀和)
    CodeForces 429 B Working out(递推dp)
  • 原文地址:https://www.cnblogs.com/ldld/p/5727538.html
Copyright © 2011-2022 走看看