js类型
在了解类型之后,再去了解==与===的区别
==如果之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等。也就是从根本上比较类型。
对于Array,Object等高级类型,==和===是没有区别的进行“指针地址”比较
看下面表格一目了然:
Value  | Converted to:  | |||
|---|---|---|---|---|
String:  | Number  | Boolean  | Object  | |
undefined  | "undefined"  | NaN  | false  | throws TypeError  | 
null  | "null"  | 0  | false  | throws TypeError  | 
true  | "true"  | 1  | new Boolean(true)  | |
false  | "false"  | 0  | new Boolean(false)  | |
"" (empty string)  | 0  | false  | new String("")  | |
"1.2" (nonempty, numeric)  | 1.2  | true  | new String("1.2")  | |
"one" (nonempty, non-numeric)  | NaN  | true  | new String("one")  | |
0  | "0"  | false  | new Number(0)  | |
-0  | "0"  | false  | new Number(-0)  | |
NaN  | "undefined"  | false  | new Number(NaN)  | |
Infinity  | "Infinity"  | true  | new Number(Infinity)  | |
-Infinity  | "-Infinity"  | true  | new Number(-Infinity)  | |
1 (finite, non-zero)  | "1"  | true  | new Number(1)  | |
{} (any object)  | NaN  | true  | ||
[] (empty array)  | ""  | 0  | true  | |
[9] (1 numeric elt)  | "9"  | 9  | true  | |
['a'] (any other array)  | use join() method  | NaN  | true  | |
function(){} (any function  | "undefined"  | NaN  | true  |