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
-
關於JavaScript中繼承的深入理解
JavaScript中我們可以藉助原型實現繼承。例如functionbaz(){="";}functionfoo(){}otype=newbaz();varmyFoo=newfoo();;這樣我們就可以訪問到baz裏的屬性oo啦。在實際使用中這個樣不行滴,由於原型的共享特點(數據保存在了堆上),所有實例都使用一個原型,一但baz的屬性...
-
PHP開發工程師的主要職責
PHP開發工程師的主要職責1職責:1、負責公司後端的研發,保障系統的穩定性和質量2、與業務需求部門及項目經理溝通,理解需求,進行架構設計;3、搭建開發框架、負責核心代碼的編寫,解決技術難點;4、界定、分析和解決系統中存在的問題和缺陷;5、對系統進行持續改進,提升系...
-
如何理解Javascript的caller,callee,call,apply區別
在提到上述的概念之前,首先想説説javascript中函數的隱含參數:argumentsarguments該對象代表正在執行的函數和調用它的函數的參數。[function.]arguments[n]參數function:選項。當前正在執行的Function對象的名字。n:選項。要傳遞給Function對象的從0開始的參數值...
-
學習JavaScript的7個理由
為什麼要學習JavaScript?學習JavaScript對我們的工作有什麼幫助麼?下面YJBYS小編為大家講解!需求我之所以這樣説的主要原因是,隨着JavaScript的日漸成熟,以及方案變得越來越可行,我們對JavaScript程序員的需求正在持續增長。JavaScript在需求比例上已經超過了C#,僅...