相等运算符& 全等运算符
1.==会进行类型转换(字符转数字,布尔转数字)
2.===比较的时候回判断类型是否相等
例一:
6 == 6 // true
6 === 6 // true
6 == '6' // true
6 === '6' // false
例二:
true == 1 // true
false == 0 // true
true === 1 // false
false === 0 // false
例三:
- 在js中,0表示空,如果一个字符串中无内容,或内容为空,都属于空的。
- 在js中,null和undefined都是假值,他们彼此相等。但他们除了自身以外,不等于任何其他的值。
'' == 0 // true
' ' == 0 // true
null == undefined // true
null == null // true
undefined == undefined // true
null == 0 // false
undefined == '' // false
null == false // false
undefined == false // false
例四:
- 在js中,NaN是唯一一个自身不等于自身的值,连自身都不相等的值更不会等于其他值。
'false' == false // false
NaN == NaN // false
NaN == false // false
NaN === false // false
例五:
- 在js中,对象是引用类型,引用类型的地址存在栈中,值存在堆中。在进行比较的时候,比较的是其地址的值。a和b的地址值不同,所以不相等。而=进行赋值操作时,将a的地址赋给了c,因此a和c相等。
var a = {}
var b = {}
var c = a
a == b // false
a === b // false
a == c // true
a === c // true