双等号(==)
-
定义:双等号在比较两个值时,会自动进行类型转换,然后比较转换后的值是否相等。
-
特点:会尝试将两个值转换为相同的类型后再进行比较,因此可能导致意想不到的结果。
-
示例:
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,因为类型不同