js类型
在了解类型之后,再去了解==与===的区别
==如果之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等。也就是从根本上比较类型。
对于Array,Object等高级类型,==和===是没有区别的进行“指针地址”比较
- boolean
- number
- string
- 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 |
|