相等运算符 == - 相等,判断左右两个值是否相等,如果相等返回true,如果不等返回false - 相等会自动对两个值进行类型转换,如果对不同的类型进行比较,会将其转换为相同的类型然后再比较, 转换后相等它也会返回true != - 不等,判断左右两个值是否不等,如果不等则返回true,如果相等则返回false - 不等也会做自动的类型转换。 === - 全等,判断左右两个值是否全等,它和相等类似,只不过它不会进行自动的类型转换, 如果两个值的类型不同,则直接返回false !== - 不全等,和不等类似,但是它不会进行自动的类型转换,如果两个值的类型不同,它会直接返回true 特殊的值: - null和undefined - 由于undefined衍生自null,所以null == undefined 会返回true。 但是 null === undefined 会返回false。 - NaN - NaN不与任何值相等,报告它自身 NaN == NaN //false - 判断一个值是否是NaN - 使用isNaN()函数
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> /* * 相等运算符用来比较两个值是否相等, * 如果相等会返回true,否则返回false * * 使用 == 来做相等运算 * - 当使用==来比较两个值时,如果值的类型不同, * 则会自动进行类型转换,将其转换为相同的类型 * 然后在比较 * 不相等 * 不相等用来判断两个值是否不相等,如果不相等返回true,否则返回false * - 使用 != 来做不相等运算 * - 不相等也会对变量进行自动的类型转换,如果转换后相等它也会返回false * * * === * 全等 * - 用来判断两个值是否全等,它和相等类似,不同的是它不会做自动的类型转换 * 如果两个值的类型不同,直接返回false * !== * 不全等 * - 用来判断两个值是否不全等,和不等类似,不同的是它不会做自动的类型转换 * 如果两个值的类型不同,直接返回true */ //console.log(1 == 1); //true var a = 10; //console.log(a == 4); //false //console.log("1" == 1); //true //console.log(true == "1"); //true //console.log(null == 0); //false /* * undefined 衍生自 null * 所以这两个值做相等判断时,会返回true */ //console.log(undefined == null); /* * NaN不和任何值相等,包括他本身 */ //console.log(NaN == NaN); //false var b = NaN; //判断b的值是否是NaN //console.log(b == NaN); /* * 可以通过isNaN()函数来判断一个值是否是NaN * 如果该值是NaN则返回true,否则返回false */ //console.log(isNaN(b)); //console.log(10 != 5); //true //console.log(10 != 10); //false //console.log("abcd" != "abcd"); //false //console.log("1" != 1);//false //console.log("123" === 123);//false //console.log(null === undefined);//false console.log(1 !== "1"); //true </script> </head> <body> </body> </html>