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

  • 相关阅读:
    luogu 1865 数论 线性素数筛法
    洛谷 2921 记忆化搜索 tarjan 基环外向树
    洛谷 1052 dp 状态压缩
    洛谷 1156 dp
    洛谷 1063 dp 区间dp
    洛谷 2409 dp 月赛题目
    洛谷1199 简单博弈 贪心
    洛谷1417 烹调方案 dp 贪心
    洛谷1387 二维dp 不是特别简略的题解 智商题
    2016 10 28考试 dp 乱搞 树状数组
  • 原文地址:https://www.cnblogs.com/jinhaoObject/p/4597971.html
Copyright © 2011-2022 走看看