日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

js 运算符_JS的相等和严格相等运算符(== amp; ===)

發布時間:2023/12/15 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js 运算符_JS的相等和严格相等运算符(== amp; ===) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【===】被稱為嚴格相等運算符,【==】被稱為相等運算符,兩個都是用來比較兩邊的值是否相等,相等則返回true,否則返回false。

然鵝,他們的比較規則是不一樣的。


【===】嚴格相等運算符的比較規則:

1.兩邊數據的類型不同,直接返回false:

'1' === 1 => false

2.兩邊都是相同類型的基礎數據類型(number, string, boolean)比較時,他們的值相等,則返回true,否則返回false:

1 === 1 => true '1' === '1' => true +0 === -0 => true

3.NaN與NaN比較會返回false:

NaN === NaN => false // 相反地 NaN !== NaN => true

4.兩邊都是引用數據類型時,比較的是指針指向的內存地址是否相等,相等返回true,否則返回false:

var a1 = [] var a2 = [] var a3 = a1 var j1 = {a: 1} var j2 = {a: 1} var j3 = j1 var f1 = function () {} var f2 = function () {} var f3 = f1 a1 === a2 => false a1 === a3 => true j1 === j2 => false j1 === j3 => true f1 === f2 => false f1 === f3 => true

5.null和undefined會與自身嚴格相等:

null === null => true undefined === undefined => true // null與undefined 不會嚴格相等,因為他們類型不一樣:) null === undefined => false

【==】相等運算符比較規則:

1.相同類型比較時,和嚴格相等比較規則一樣:

1 == 1 => true '1' == '1' => true [] == [] => false {} == {} => false

2.兩邊都是基礎數據類型時,會將數值進行轉換,轉換成number類型在進行比較:

1 == true; // true // 等同于 1 === 10 == false; // true // 等同于 0 === 02 == true; // false // 等同于 2 === 12 == false; // false // 等同于 2 === 0'true' == true; // false // 等同于 Number('true') === Number(true) // 等同于 NaN === 1'' == 0; // true // 等同于 Number('') === 0 // 等同于 0 === 0'' == false; // true // 等同于 Number('') === Number(false) // 等同于 0 === 0'1' == true; // true // 等同于 Number('1') === Number(true) // 等同于 1 === 1'n 123 t' == 123; // true // 因為字符串轉為數字時,省略前置和后置的空格

3.引用數據類型與基礎數據類型比較時,會將引用數據類型轉換為基礎數據類型的值,再進行比較:

其中Object轉為原始值:

所有object轉為boolean時都為true。

object轉為基礎數據類型時會先調用自身原型的toString()方法,如果沒有toString()方法,則會調用valueOf()。

[] == 1 => false [] == 0 => true ({}) == 1 => false // ({}) 調用toString方法得到"[object Object]", "[object Object]" 轉換為number為NaN,所以NaN === 1 為false ({}) != NaN => true

4.兩邊有null或者undefined時,null和undefined 與其他類型比較時,都會返回false,他們與對方或者自身比較時,會返回true:

null == 1 => false null == '1' => false null == [] => false null == {} => false null == true => false null == undefined => true null == null => true undefined == undefined => true

總結:建議使用嚴格相等運算符【===】

以上大概就是這兩者的區別,如果有不足或者錯誤,歡迎指正!

總結

以上是生活随笔為你收集整理的js 运算符_JS的相等和严格相等运算符(== amp; ===)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。