在JavaScript中,==和===是比较符号,它们之间有着明显的区别。
==的用法
==是把两个表达式的值进行比较,如果值相等,则返回true,否则返回false。它会进行类型转换,把不同类型的值转换成相同的类型进行比较,比如把字符串转换成数字,把布尔值转换成数字等等。例如:
var a = 1; var b = "1"; a == b; // true
在上面的代码中,变量a的值是数字1,变量b的值是字符串"1",但是==比较后返回true,是因为==会把字符串"1"转换成数字1,比较。
===的用法
===也是把两个表达式的值进行比较,如果值相等,则返回true,否则返回false。但是它不会进行类型转换,只有当两个表达式的值完全相等(包括类型)时才会返回true,例如:
var a = 1; var b = "1"; a === b; // false
在上面的代码中,变量a的值是数字1,变量b的值是字符串"1",但是===比较后返回false,是因为===不会把字符串"1"转换成数字1,而是比较它们的类型,发现它们的类型不相等,所以返回false。
==和===的区别就是==会进行类型转换,而===不会进行类型转换。在使用时,如果需要比较的两个表达式可能存在类型差异,则应使用==;如果两个表达式必须是完全相等,则应使用===。