數組
1.數組比較
javascript是不能用 ==或 ===操作符直接比較兩個數組是否相等的,返回值都是false
爲什麼都輸出false呢?先弄清楚以下幾點:
-
javascript包括兩個不同類型的值:基本數據類型和引用數據類型。
-
基本數據類型指的是簡單的數據段,引用數據類型指的是有多個值構成的對象。
-
常見的基本數據類型:Number、String 、Boolean、Null和Undefined。
var a = 10; var b = a; b = 20; console.log(a); // 10
上面b獲取的是a值的一份拷貝,雖然兩個變量的值相等,但是兩個變量保存了兩個不同的基本數據類型值。b只是保存了a賦值的一個副本,所以,b的改變,對a沒有影響。
-
引用類型數據:也就是對象類型Object type,比如:Object、Array、Function、Data等。javascript的引用數據類型是保存在堆內存中的對象。
講到這裏應該理解爲什麼輸出的是false了:因爲數組是兌現,== 或===操作符只能比較兩個對象是否是同一個實例,也就是是否是同一個對象引用。目前JavaScript沒有內置的操作符判斷對象的內容是否相同。