1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title></title>
6 <script type="text/javascript">
7
8 /*
9 * 相等运算符用来比较两个值是否相等,
10 * 如果相等会返回true,否则返回false
11 *
12 * 使用 == 来做相等运算
13 * - 当使用==来比较两个值时,如果值的类型不同,
14 * 则会自动进行类型转换,将其转换为相同的类型,然后再比较
15 *
16 * 不相等
17 * 不相等用来判断两个值是否不相等,如果不相等返回true,否则返回false
18 * - 使用 != 来做不相等运算
19 * - 不相等也会对变量进行自动的类型转换,如果转换后相等它也会返回false
20 *
21 *
22 * ===
23 * 全等
24 * - 用来判断两个值是否全等,它和相等类似,不同的是它不会做自动的类型转换
25 * 如果两个值的类型不同,直接返回false
26 * !==
27 * 不全等
28 * - 用来判断两个值是否不全等,和不等类似,不同的是它不会做自动的类型转换
29 * 如果两个值的类型不同,直接返回true
30 */
31
32 console.log(1 == 1); //true
33
34
35 var a = 10;
36 console.log(a == 4); //false
37
38
39 //自动进行类型转换,将其转换为相同的类型,然后再比较
40 console.log("1" == 1); //true
41
42
43 //大部分情况会转成number类型
44 console.log(true == "1"); //true
45
46
47 //没转成number类型
48 console.log(null == 0); //false
49
50
51 /*
52 * undefined 衍生自 null
53 * 所以这两个值做相等判断时,会返回true
54 */
55 console.log(undefined == null); //true
56
57
58 /*
59 * NaN不和任何值相等,包括他本身
60 */
61 console.log(NaN == NaN); //false
62
63
64 var b = NaN;
65 //判断b的值是否是NaN,那没法判断b是不是NaN?我们可以用isNaN()函数
66 console.log(b == NaN); //false
67
68
69 /*
70 * 可以通过isNaN()函数来判断一个值是否是NaN
71 * 如果该值是NaN则返回true,否则返回false
72 */
73 console.log(isNaN(b));//true
74
75
76 //----------------------------------------------------------------------
77
78 //如果不相等返回true,否则返回false
79 console.log(10 != 5); //true
80
81 console.log(10 != 10); //false
82
83 console.log("abcd" != "abcd"); //false
84
85 //不相等也会对变量进行自动的类型转换,如果转换后相等它也会返回false
86 console.log("1" != 1); //false
87
88
89 //----------------------------------------------------------------------
90
91 //不会做自动的类型转换,如果两个值的类型不同,直接返回false
92 console.log("123" === 123); //false
93
94 console.log(null === undefined); //false
95
96
97 //不会做自动的类型转换,如果两个值的类型不同,直接返回true
98 console.log(1 !== "1"); //true
99
100
101 </script>
102 </head>
103 <body>
104 </body>
105 </html>
原文:http://www.cnblogs.com/ZHOUVIP/p/7653347.html