双等号和三等号的区别

418 阅读1分钟

双等号(==

  • 定义:双等号在比较两个值时,会自动进行类型转换,然后比较转换后的值是否相等。

  • 特点:会尝试将两个值转换为相同的类型后再进行比较,因此可能导致意想不到的结果。

  • 示例

    1 == "1";    // true,因为字符串 "1" 会转换为数字 1
    0 == false;  // true,因为 false 会转换为数字 0
    null == undefined; // true,因为两者被认为是相等的
    "0" == false; // true,因为 "0" 会转换为数字 0
    

三等号(===

  • 定义:三等号在比较两个值时,不会进行类型转换,要求值和类型必须完全相同才会返回 true

  • 特点:更严格,通常被认为是更安全的比较方式。

  • 示例

    1 === "1";    // false,因为类型不同
    0 === false;  // false,因为类型不同
    null === undefined; // false,因为类型不同
    "0" === false; // false,因为类型不同