當前位置:才華齋>設計>網頁設計>

JavaScript中的操作符和判斷規則的介紹

網頁設計 閱讀(7.85K)

JavaScript中,==與===操作符均可用於判斷兩個值是否相等;不同之處在於,如果進行判斷的兩個值型別不一致,===操作符會直接返回false,而==操作符則會在型別轉換後再進行判斷。詳細的判斷規則如下:

JavaScript中的操作符和判斷規則的介紹

===操作符的判斷規則

1.如果兩個值的型別不一致,返回false。

2.如果兩個值的型別一致,值一致,返回true。NaN是一個特例,NaN===NaN返回false。

3.如果兩個值均為object型別,那麼與Java一樣,除非兩者引用一致(reference指向同一個物件地址),不然即使object中的內容完全一樣,也認為這兩個值不一致,相應的操作將返回false。比如,新建兩個內容完全一樣的.陣列,對它們進行===操作後返回結果為false — 雖然它們的內容完全一樣,但還是屬於兩個不同的物件。

4.0===-0返回true。

==操作符的判斷規則

==操作符會將值進行型別轉換後再進行比較,其型別轉換遵循以下原則:優先轉換成number後進行比較,Date物件則優先轉換成string後進行比較。具體判斷規則如下:

1.如果兩個值型別一致,執行===操作後返回。

==undefined為true。

將轉換成1後進行比較,false將轉換成0後進行比較。

4.如果其中一個值為物件,則將其轉換成number後再進行比較,Date物件除外。

5.如果其中一個值為Date物件,則將其轉換成string後再進行比較。

實驗

複製程式碼 程式碼如下:

("3" === 3);//false

(NaN === NaN);//false

var a = {x:1, y:2};

var b = {x:1, y:2};

var c = a;

(a === b);//false

(a === c);//true

(0 === -0);//true

("3" == 3);//true

(null == undefined);//true

(true == 1);//true

(true == 9);//false

([9] == 9);//true

([9] == "9");//true

var d = new Date();

var s = ring();

var n = eOf();

(d == s);//true

(d == n);//false