当前位置:  首页>> 技术小册>> JavaScript面试指南

==和===都是用来比较两个值是否相等的运算符,但它们的比较方式略有不同。

==运算符进行比较时,会进行类型转换。如果两个值类型不同,会尝试将它们转换为相同类型,再进行比较。例如:

  1. console.log(1 == '1'); // true,字符串'1'被转换为数字1再进行比较
  2. console.log(true == 1); // true,布尔值true被转换为数字1再进行比较
  3. console.log(null == undefined); // true,null和undefined被认为是相等的

===运算符进行比较时,不会进行类型转换,只有当两个值的类型和值都相等时,才会返回true。例如:

  1. console.log(1 === '1'); // false,类型不同
  2. console.log(true === 1); // false,类型和值都不同
  3. console.log(null === undefined); // false,类型和值都不同
  4. console.log(null === null); // true,类型和值都相同

在一般情况下,建议使用===运算符进行比较,因为它不会进行类型转换,可以减少出错的可能性。但是,在比较null和undefined时,它们被认为是相等的,这时可以使用==运算符。

以下是一些示例代码:

  1. console.log(1 == '1'); // true
  2. console.log(1 === '1'); // false
  3. console.log(null == undefined); // true
  4. console.log(null === undefined); // false
  5. console.log('' == false); // true
  6. console.log('' === false); // false
  7. console.log(0 == false); // true
  8. console.log(0 === false); // false
  9. console.log(NaN == NaN); // false
  10. console.log(NaN === NaN); // false
  11. console.log(null == 0); // false
  12. console.log(null === 0); // false
  13. console.log(undefined == null); // true
  14. console.log(undefined === null); // false

该分类下的相关小册推荐: