zoukankan      html  css  js  c++  java
  • JavaScript之“==”和“===”

     == 和 === 都是比较运算符。它们有什么区别?

    ===

    • 如果类型不同,就一定不相等。
    • 如果两边都是数值,且值相等,则返回trueNaN 除外。)
    • 字符串、布尔类型相等,对比值相等,则相等。
    • 如果引用同一个对象或数组,则相等,否则不等。
    • 如果两个都是nullundefined 则相等,否则不等。

    NaN属性用来表示非数字的字符,只能用方法isNaN()判断。因为每个NaN都不同。

    ==

    • 如果类型相同,则规则与“===”已知,比较值是否相同。
    • 如果类型不同,也有可能相等。
      • 如果一个为null,一个为undfined,两个值相等。
      • 如果一个是字符串,一个是数值,把字符串转换为数值后再比较。

    根据以上的规则,举例子,以便于理解。

     1 // 变量类型相同
     2 console.log(false == false); // true(布尔类型)
     3 console.log(false == false); // true(布尔类型)
     4 console.log(1 == 1); // true(数字类型)
     5 console.log(1 === 1); // true(数字类型)
     6 console.log("hello" == "hello"); // true(字符串) 
     7 console.log("hello" === "hello"); // true(字符)
     8 // 变量类型相同-(对象或数组、方法)
     9 var arr1 = [1, 2, 3, 4, 5];
    10 var arr2 = [1, 2, 3, 4, 5];
    11 var arr3 = arr1;
    12 console.log("同一个数组=>", arr1 == arr3); // true (同一个数组,返回true)
    13 console.log("同一个数组=>", arr1 === arr3); // true (同一个数组,返回true)
    14 console.log("不同数组=>", arr1 == arr2); // false (不同数组,值相同,返回false)
    15 console.log("不同数组=>", arr1 === arr2); // false (不同数组,是相同,返回false)
    16 // null 和undefined
    17 console.log(null == null); // true 
    18 console.log(null === null); // true 
    19 console.log(undefined == undefined); // true 
    20 console.log(undefined === undefined); // true 
    21 console.log(null == undefined); // true 
    22 console.log(null === undefined); // false
    23 var a; // 声明值,初始化为undefined
    24 var b; // 声明值,初始化为undefined
    25 console.log(a == b);
    26 console.log(a === b);
    27 
    28 // 变量类型不同
    29 console.log(5 == "5"); // true (变量类型不同,转换为相同的比较)
    30 console.log(5 === "5"); // false (变量类型不同,则值不同)
    31 // NaN——非数字字符
    32 console.log(NaN == NaN); // false
    33 console.log(NaN === NaN); // false

    参考网址

    有志者,事竟成,破釜沉舟,百二秦关终属楚; 苦心人,天不负,卧薪尝胆,三千越甲可吞吴。
  • 相关阅读:
    小白学编程,C++ 初始化的坑,你避开了吗?
    学完C语言还是懵的?大学生:我可能学了个假的C语言
    不知道如何入门编程?最全在线教程网站汇总来了,还不赶快收藏
    Linux 之父对 C++ 进行了炮轰,C++不值得推荐?
    没有内存泄漏的C++代码,如何用RAII编写,你知道吗
    菜鸟学编程,不懂C++ this指针?还不赶快来学一学
    在7天-第2天逐步学习MVC(模型视图控制器)
    ASP。NET MVC vs ASP。NET WebForm性能比较
    学习MVC项目在7天-奖金的第二天
    学习MVC项目在7天-奖金的第一天
  • 原文地址:https://www.cnblogs.com/luyj00436/p/15177776.html
Copyright © 2011-2022 走看看