Language Basics(Chapter 3 of Professional JavaScript® for Web Developers 2nd Edition)
The end result was for ECMAScript to provide two sets of operators: equal and not equal to perform conversion before comparison, and identically equal and not identically equal to perform comparison without conversion.
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 <html>
2 <head>
3 <script type="text/javascript">
4
5 window.onload = function()
6 {
7 console.log("------------Equality Operator-------------");
8 console.log("null == undefined: " + (null == undefined));
9 console.log("'NaN' == NaN: " + ("NaN" == NaN));
10 console.log("5 == NaN: " + (5 == NaN));
11 console.log("NaN == NaN: " + (NaN == NaN));
12 console.log("NaN != NaN: " + (NaN != NaN));
13 console.log("false == 0: " + (false == 0));
14 console.log("true == 1: " + (true == 1));
15 console.log("true == 2: " + (true == 2));
16 console.log("undefined == 0: " + (undefined == 0));
17 console.log("null == 0: " + (null == 0));
18 console.log("'5' == 5: " + ('5' == 5));
19
20 console.log("-----Identically Equality Operator------");
21 console.log("null === undefined: " + (null === undefined));
22 console.log("'NaN' === NaN: " + ("NaN" === NaN));
23 console.log("5 === NaN: " + (5 === NaN));
24 console.log("NaN === NaN: " + (NaN === NaN));
25 console.log("NaN !== NaN: " + (NaN !== NaN));
26 console.log("false === 0: " + (false === 0));
27 console.log("true === 1: " + (true === 1));
28 console.log("true === 2: " + (true === 2));
29 console.log("undefined === 0: " + (undefined === 0));
30 console.log("null === 0: " + (null === 0));
31 console.log("'5' === 5: " + ('5' === 5));
32 };
33 </script>
34 </head>
35 <body>
36 </body>
37 </html>
2 <head>
3 <script type="text/javascript">
4
5 window.onload = function()
6 {
7 console.log("------------Equality Operator-------------");
8 console.log("null == undefined: " + (null == undefined));
9 console.log("'NaN' == NaN: " + ("NaN" == NaN));
10 console.log("5 == NaN: " + (5 == NaN));
11 console.log("NaN == NaN: " + (NaN == NaN));
12 console.log("NaN != NaN: " + (NaN != NaN));
13 console.log("false == 0: " + (false == 0));
14 console.log("true == 1: " + (true == 1));
15 console.log("true == 2: " + (true == 2));
16 console.log("undefined == 0: " + (undefined == 0));
17 console.log("null == 0: " + (null == 0));
18 console.log("'5' == 5: " + ('5' == 5));
19
20 console.log("-----Identically Equality Operator------");
21 console.log("null === undefined: " + (null === undefined));
22 console.log("'NaN' === NaN: " + ("NaN" === NaN));
23 console.log("5 === NaN: " + (5 === NaN));
24 console.log("NaN === NaN: " + (NaN === NaN));
25 console.log("NaN !== NaN: " + (NaN !== NaN));
26 console.log("false === 0: " + (false === 0));
27 console.log("true === 1: " + (true === 1));
28 console.log("true === 2: " + (true === 2));
29 console.log("undefined === 0: " + (undefined === 0));
30 console.log("null === 0: " + (null === 0));
31 console.log("'5' === 5: " + ('5' === 5));
32 };
33 </script>
34 </head>
35 <body>
36 </body>
37 </html>
1 <html>
2 <head>
3 <script type="text/javascript">
4
5 function howManyArgs()
6 {
7 console.log("Count of arguments is " + arguments.length);
8 }
9
10 function addSomeNumber(num)
11 {
12 return num + 100;
13 }
14
15 function addSomeNumber(num)
16 {
17 return num + 200;
18 }
19
20 window.onload = function()
21 {
22 howManyArgs("string", 45);
23 howManyArgs();
24
25 console.log("addSomeNumber(100) is " + addSomeNumber(100));
26 };
27
28 function setName(obj)
29 {
30 obj.name = "Summer";
31 obj = new Object();
32 obj.name = "autumn";
33 }
34 var person = new Object();
35 setName(person);
36 console.log(person.name);
37
38 </script>
39 </head>
40 <body>
41 </body>
42 </html>
2 <head>
3 <script type="text/javascript">
4
5 function howManyArgs()
6 {
7 console.log("Count of arguments is " + arguments.length);
8 }
9
10 function addSomeNumber(num)
11 {
12 return num + 100;
13 }
14
15 function addSomeNumber(num)
16 {
17 return num + 200;
18 }
19
20 window.onload = function()
21 {
22 howManyArgs("string", 45);
23 howManyArgs();
24
25 console.log("addSomeNumber(100) is " + addSomeNumber(100));
26 };
27
28 function setName(obj)
29 {
30 obj.name = "Summer";
31 obj = new Object();
32 obj.name = "autumn";
33 }
34 var person = new Object();
35 setName(person);
36 console.log(person.name);
37
38 </script>
39 </head>
40 <body>
41 </body>
42 </html>
1 <html>
2 <head>
3 <script type="text/javascript">
4
5 window.onload = function()
6 {
7 console.log("---------------------typeof-----------------------");
8 var a;
9 console.log("typeof undefined is '" + typeof(a) + "'");
10
11 var b = null;
12 console.log("typeof null is '" + typeof(b) + "'");
13
14 var c = true;
15 console.log("typeof true is '" + typeof(c) + "'");
16
17 var d = 90;
18 console.log("typeof 90 is '" + typeof(d) + "'");
19
20 var e = "hello";
21 console.log("typeof hello is '" + typeof(e) + "'");
22
23 var o = new Object();
24 console.log("typeof Object is '" + typeof(o) + "'");
25
26 console.log("----------Boolean Conversion-------------");
27
28 var emptyString = "";
29 if(emptyString)
30 {
31 console.log("Empty string is converted to true");
32 }
33 else
34 {
35 console.log("Empty string is converted to false");
36 }
37
38 if(b)
39 {
40 console.log("null is converted to true");
41 }
42 else
43 {
44 console.log("null is converted to false");
45 }
46
47 if(a)
48 {
49 console.log("undefined is converted to true");
50 }
51 else
52 {
53 console.log("undefined is converted to false");
54 }
55
56 var zero = 0;
57 if(zero)
58 {
59 console.log("zero is converted to true");
60 }
61 else
62 {
63 console.log("zero is converted to false");
64 }
65
66 console.log("-----------------Number Conversion-----------------");
67
68 console.log(Number("Hello Ray"));
69 console.log(Number(""));
70 console.log(Number("0010"));
71 console.log(Number(null));
72 console.log(Number(true));
73
74 console.log("---------------parseInt---------------");
75 console.log(parseInt("123abc"));
76 console.log(parseInt("123abc", 16));
77 console.log(parseInt(""));
78 console.log(parseInt("0xA"));
79 console.log(parseInt(22.5));
80 console.log(parseInt("070"));
81
82 console.log("---------------parseFloat---------------");
83 console.log(parseFloat("22.34.5"));
84 console.log(parseFloat("3.12e4"));
85 }
86
87 </script>
88 </head>
89 <body>
90 </body>
91 </html>
2 <head>
3 <script type="text/javascript">
4
5 window.onload = function()
6 {
7 console.log("---------------------typeof-----------------------");
8 var a;
9 console.log("typeof undefined is '" + typeof(a) + "'");
10
11 var b = null;
12 console.log("typeof null is '" + typeof(b) + "'");
13
14 var c = true;
15 console.log("typeof true is '" + typeof(c) + "'");
16
17 var d = 90;
18 console.log("typeof 90 is '" + typeof(d) + "'");
19
20 var e = "hello";
21 console.log("typeof hello is '" + typeof(e) + "'");
22
23 var o = new Object();
24 console.log("typeof Object is '" + typeof(o) + "'");
25
26 console.log("----------Boolean Conversion-------------");
27
28 var emptyString = "";
29 if(emptyString)
30 {
31 console.log("Empty string is converted to true");
32 }
33 else
34 {
35 console.log("Empty string is converted to false");
36 }
37
38 if(b)
39 {
40 console.log("null is converted to true");
41 }
42 else
43 {
44 console.log("null is converted to false");
45 }
46
47 if(a)
48 {
49 console.log("undefined is converted to true");
50 }
51 else
52 {
53 console.log("undefined is converted to false");
54 }
55
56 var zero = 0;
57 if(zero)
58 {
59 console.log("zero is converted to true");
60 }
61 else
62 {
63 console.log("zero is converted to false");
64 }
65
66 console.log("-----------------Number Conversion-----------------");
67
68 console.log(Number("Hello Ray"));
69 console.log(Number(""));
70 console.log(Number("0010"));
71 console.log(Number(null));
72 console.log(Number(true));
73
74 console.log("---------------parseInt---------------");
75 console.log(parseInt("123abc"));
76 console.log(parseInt("123abc", 16));
77 console.log(parseInt(""));
78 console.log(parseInt("0xA"));
79 console.log(parseInt(22.5));
80 console.log(parseInt("070"));
81
82 console.log("---------------parseFloat---------------");
83 console.log(parseFloat("22.34.5"));
84 console.log(parseFloat("3.12e4"));
85 }
86
87 </script>
88 </head>
89 <body>
90 </body>
91 </html>