JavaScript中的操作符和判斷規則的介紹
JavaScript中,==與===操作符均可用於判斷兩個值是否相等;不同之處在於,如果進行判斷的兩個值型別不一致,===操作符會直接返回false,而==操作符則會在型別轉換後再進行判斷。詳細的判斷規則如下:
===操作符的判斷規則
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
-
css經典教程
css經典教程1有些習慣顯得尤為重要,今天與您分享六個CSS習慣。因為習慣其實是會變的,所以只能寫“最近”的。這些習慣都跟技術無關,如果不遵守,也不會出錯。但是我覺得良好的習慣會體現一個人的素質。我們在中向大家介紹過很多CSS經驗與技巧,這些東西都發布在/css/...
-
如何理解Javascript的caller,callee,call,apply區別
在提到上述的概念之前,首先想說說javascript中函式的隱含引數:argumentsarguments該物件代表正在執行的函式和呼叫它的函式的引數。[function.]arguments[n]引數function:選項。當前正在執行的Function物件的名字。n:選項。要傳遞給Function物件的從0開始的引數值...
-
如何理解Javascript的caller,callee,call,apply區別
在提到上述的概念之前,首先想說說javascript中函式的隱含引數:argumentsarguments該物件代表正在執行的函式和呼叫它的函式的引數。[function.]arguments[n]引數function:選項。當前正在執行的Function物件的名字。n:選項。要傳遞給Function物件的從0開始的引數值...
-
JavaScript的課堂講解
本文主要內容:1.分析函式的四種呼叫形式2.弄清楚函式中this的意義3.明確構造函物件的過程4.學會使用上下文呼叫函式一、函式呼叫形式函式呼叫形式是最常見的形式,也是最好理解的形式。所謂函式形式就是一般宣告函式後直接呼叫即是。例如:複製程式碼程式碼如下://宣告...