zoukankan      html  css  js  c++  java
  • js里面的等于号--

    一个是赋值等于号,二个是对比等于号,那么三个等于号是什么用的呢

     

    有时候会看到在判断两个对象是否相等的时候使用了三个等号(===),它和两个等号(==)有什么区别呢?简单来说就是使用“==”时,如果两边类型不同,js引擎会把它们转换成相同类型然后在进行比较,而“===”则不会进行类型转换,因此当两边不是属于同一个类型,肯定不相等。例如:

     代码如下 复制代码

    var a = 0, b = '0';

    alert((a == b) + '--' + (a === b))此时看到的结果为“true–false”。

    === 判断规则

    如果类型不同,就[不相等]  如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)  如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。  如果两个值都是true,或者都是false,那么[相等]。  如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。  如果两个值都是null,或者都是undefined,那么[相等]。  == 判断规则:

    如果两个值类型相同,进行 === 比较。  如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:  如果一个是null、一个是undefined,那么[相等]。  如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。  如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。  如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核心内置类,会尝试valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻烦,我也不大懂)  任何其他组合(array数组等),都[不相等]。 

    特别需要注意的是true、false的转换,例如:

     代码如下 复制代码

    alert(true == 1);  //ture alert(true == 2); //false, true会转换成number,也就是1,当然 1 不等于 2 //可以使用 !! 来把一个数据类型转换为boolean型 alert(true == !!2) //true,!2 === false !(!=2) = !false = true

    另外在js中,如果把一个变量用在逻辑运算中,那么变量在无初始值或者其值为 0、-0、null、”"、false、undefined 或者 NaN时,它的值为 false。否则,其值为 true

    那么三个等于号与二个等于号之间的区别在哪里

    首先,先做个简单的介绍,让先有个直观的认识

    == equality 等同     === identity 恒等

    ==  两边值类型不同的时候,要先进行类型转换,再比较。  === 不做类型转换,类型不同的一定不等。

    ==先转换类型再比较,===先判断类型,如果不是同一类型直接为false。

    ===表示恒等于,比较的两边要绝对的相同

    运行体会一下以下的代码就会清楚了:

     代码如下 复制代码

    alert(0 == ""); // true alert(0 == false); // true alert("" == false); // true

    alert(0 === ""); // false alert(0 === false); // false alert("" === false); // false

  • 相关阅读:
    Codeforces Round #741 (Div. 2)部分题题解
    Wedding DJ题解 (回归OI)
    Note -「模板」FHQ-Treap
    Solution -「数论」「校内题」矩阵求和
    【游记】WC2021抱铃记
    洛谷 P7073 /AcWing 2769. 表达式
    洛谷 P3004 [USACO10DEC]Treasure Chest S/CSES 1097
    P7074 [CSP-J2020] 方格取数
    Unity Built-in转URP速查表
    英国学生签证准备材料+办理流程等
  • 原文地址:https://www.cnblogs.com/jinhaoObject/p/4597971.html
Copyright © 2011-2022 走看看