JS 的数据类型的比较
-
在js中原始值(undefined,null,布尔值,数字和字符串)与对象(包括数组和函数)有着根本区别,原始值是不可更改的
-
原始值的比较是值的比较,值相等时他们则相等
-
对于字符串,当且仅它们的长度相等且每个索引的字符串都相等时,js才认为它们相等
-
对象通常被称为引用类型,所以对象的比较均是引用的比较,当且仅当它们引用同一个基对象时才相等
var o = {x:1},p={x:1}
o === p //false
var o = {x:1} //引用同一个基对象
var b = o
var q = o
b === q //true
//比较两个单独的对象或数组
function equalArrays(a,b){
if(a.length != b.length) return false;
for(var i = 0 ; i < a.length ; i++){
if(a[i] != b[i]) return false
return true
}
}
//以下比较均是true
null == undefined
0 == false
'0' == false
'0' == 0
'' == false