[转] js == 与 === 的区别

一、对于string,number等基础类型,==和===是有区别的html

1)不一样类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===若是类型不一样,其结果就是不等
2)同类型比较,直接进行“值”比较,二者结果同样
 
二、对于Array,Object等高级类型,==和===是没有区别的
进行“指针地址”比较
 
三、基础类型与高级类型,==和===是有区别的
1)对于==,将高级转化为基础类型,进行“值”比较
2)由于类型不一样,===结果为false
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var num = 1;
 
var str = '1';
 
var test = 1;
 
test == num   //true 相同类型 相同值
 
test === num  //true 相同类型 相同值
 
test !== num  //false test与num类型相同,其值也相同, 非运算确定是false
 
 
num == str   //true  把str转换为数字,检查其是否相等。
 
num != str   //false  == 的 非运算
 
num === str  //false  类型不一样,直接返回false
 
num !== str  //true   num 与 str类型不一样 意味着其二者不等 非运算天然是true啦

== 和 != 比较若类型不一样,先偿试转换类型,再做值比较,最后返回值比较结果 。post

而 
=== 和 !== 只有在相同类型下,才会比较其值。
相关文章
相关标签/搜索