最近課程油js的課程,課后習題有道關於下面 1 類似的一道題,叫比較然后判斷結果,最開始看了網上的知識點,還是有點不太懂,個人感覺模模糊糊的(當然我自己菜,是正常的),就用依稀還記得的java對象與引用進行了簡單分析,最近將會復習相關知識,如有錯誤,也會及時進行改正,當然歡迎大家的斧正。
1.關於js字符串比較:”== “ “===”,列:
Var a=”abc”;
Var b=”abc”;
Var c=new String(“abc”);
Var d=new String(“abc”);
1.a===b =>true 沒有創建實列對象,應該是指向默認創建的對象,只要值相同都會指向同樣對象
2.a===c =>false,c創建了一個新的對象,並指向這個對象,用”===”對比結果為false(同理,a,b與d用”===”都為false)
3.c===d =>false 原因與2相同,c,d兩個引用指向的對象不是同一個,都是兩個新建的
以下轉載來源為https://www.cnblogs.com/nelson-hu/p/7922731.html
2.雙等號==:
(1)如果兩個值類型相同,再進行三個等號(===)的比較
(2)如果兩個值類型不同,也有可能相等,需根據以下規則進行類型轉換在比較:
1)如果一個是null,一個是undefined,那么相等
2)如果一個是字符串,一個是數值,把字符串轉換成數值之后再進行比較
3.三等號===:
(1)如果類型不同,就一定不相等
(2)如果兩個都是數值,並且是同一個值,那么相等;如果其中至少一個是NaN,那么不相等。(判斷一個值是否是NaN,只能使用isNaN( ) 來判斷)
(3)如果兩個都是字符串,每個位置的字符都一樣,那么相等,否則不相等。
(4)如果兩個值都是true,或是false,那么相等
(5)如果兩個值都引用同一個對象或是函數,那么相等,否則不相等
(6)如果兩個值都是null,或是undefined,那么相等
注:轉載請注明來源,博客內容除表明內容為轉載外均為原創,雖然是一個菜鳥寫的博客,但也請尊重他人,尊重自己,謝謝。