久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

JS相等比較運算符的匹配規則及if()條件的判斷

本篇文章給大家介紹一下javascript比較運算符(“===”和“==”)的匹配規則,以及if()條件的判斷結果,希望對大家有所幫助!

JS相等比較運算符的匹配規則及if()條件的判斷

前端(vue)入門到精通課程:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調試工具:點擊使用

1. 結論先行

我們都知道,在JS中,要盡量使用全等運算符(“===”),因為全等運算符在比較時都不會進行類型的轉化,相對而言速度也會更快。那么什么時候使用相等運算符(“==”)呢?以下兩種情況供參考:

  • 用于判斷對象的屬性是否存在

let obj = {}; if( obj.a == null ) {     //這里相對于:obj.a === null || obj.a === undefined 的簡寫形式,jquery源碼的推薦寫法 }
登錄后復制

  • 用于判斷函數的參數是否存在

function fn( a, b ) {     if( a == null ) {         //這里也相當于 a === null || a === undefined 的簡寫     } }
登錄后復制

總結: 一般情況下我們盡量使用“===”來精確判斷,在判斷對象屬性和函數參數是否存在時可以使用“==”。

2. 結果判斷參照表

接下來讓我們總結一下各種數據類型使用這兩種運算符所得到的結果,其中:綠色表示結果為true,白色表示結果為false

2.1 全等運算符(“===”)的操作結果

JS相等比較運算符的匹配規則及if()條件的判斷

2.2 相等運算符(“==”)操作結果

JS相等比較運算符的匹配規則及if()條件的判斷

2.3 if()條件判斷結果

JS相等比較運算符的匹配規則及if()條件的判斷

3. 具體判斷的邏輯說明

(轉載自:js中比較運算符隱式類型轉換)

3.1 全等運算符 (“===”)

說明: 嚴格匹配,不會類型轉換,必須要數據類型和值完全一致。

先判斷類型,如果類型不是同一類型的話直接為false;  1 對于基本數據類型(值類型): Number,String,Boolean,Null和Undefined:兩邊的值要一致,才相等       console.log(null === null)   // true       console.log(undefined === undefined)  // true    注意: NaN: 不會等于任何數,包括它自己    console.log(NaN === NaN)  // false   2 對于復雜數據類型(引用類型): Object,Array,Function等:兩邊的引用地址如果一致的話,是相等的      arr1 = [1,2,3];      arr2 = arr1;      console.log(arr1 === arr2)   // true
登錄后復制

3.2 相等運算符 (“==”)

非嚴格匹配: 會類型轉換,但是有前提條件一共有五種情況
(接下來的代碼以 x == y 為示例)

  • x和y都是null或undefined:
    規則: 沒有隱式類型轉換,無條件返回true

console.log ( null == undefined );//true console.log ( null == null );//true console.log ( undefined == undefined );//true
登錄后復制

  • x或y是NaN : NaN與任何數字都不等
    規則:沒有隱式類型轉換,無條件返回false

console.log ( NaN == NaN );//false
登錄后復制

  • x和y都是string,boolean,number
    規則:有隱式類型轉換,會將不是number類型的數據轉成number

console.log ( 1 == true );//true    (1) 1 == Number(true) console.log ( 1 == "true" );//false   (1) 1 == Number('true') console.log ( 1 == ! "true" );//false  (1) 1 == !Boolean('true')  (2) 1 == !true  (3) 1 == false  (4)1 == Number(false) console.log ( 0 == ! "true" );//true console.log(true == 'true') // false
登錄后復制

  • x或y是復雜數據類型 : 會先獲取復雜數據類型的原始值之后再左比較
    復雜數據類型的原始值: 先調用valueOf方法,然后調用toString方法
    valueOf:一般默認返回自身
    數組的toString:默認會調用join方法拼接每個元素并且返回拼接后的字符串

console.log ( [].toString () );//空字符串 console.log ( {}.toString () );//[object Object] 注意:  空數組的toString()方法會得到空字符串,       而空對象的toString()方法會得到字符串[object Object] (注意第一個小寫o,第二個大寫O喲)  console.log ( [ 1, 2, 3 ].valueOf().toString());//‘1,2,3’ console.log ( [ 1, 2, 3 ] == "1,2,3" );//true  (1)[1,2,3].toString() == '1,2,3'  (2)'1,2,3' == '1,2,3' console.log({} == '[object Object]');//true
登錄后復制

  • x和y都是復雜數據類型 :
    規則只比較地址,如果地址一致則返回true,否則返回false

var arr1 = [10,20,30]; var arr2 = [10,20,30]; var arr3 = arr1;//將arr1的地址拷貝給arr3         console.log ( arr1 == arr2 );//雖然arr1與arr2中的數據是一樣,但是它們兩個不同的地址 console.log ( arr3 == arr1 );//true  兩者地址是一樣         console.log ( [] == [] );//false console.log ( {} == {} );//false
登錄后復制

3.3 經典面試題

注意:八種情況轉boolean得到false: 0 -0 NaN undefined null '' false document.all()  console.log([] == 0); //true    // 分析:(1) [].valueOf().toString() == 0  (2) Number('') == 0  (3) false == 0  (4) 0 == 0 console.log(![] == 0); //true   // 分析: 邏輯非優先級高于關系運算符 ![] = false (空數組轉布爾值得到true)          console.log([] == []); //false // [] 與右邊邏輯非表達式結果比較 //(1) [] == !Boolean([])   (2) [] == !true  (3)[] == false  (4) [].toString() == false  (5)'' == false   (6)Number('0') == Number(false) console.log([] == ![]); //true  onsole.log({} == {}); //false // {} 與右邊邏輯非表達式結果比較 //(1){} == !{} (2){} == !true  (3){} == false  (4){}.toString() == false  (5)'[object Object]' == false  (6)Number('[object Object]') == false console.log({} == !{}); //false
登錄后復制

3.4 變態面試題

 var  a = ???   if(a == 1 && a == 2 && a == 3 ){       console.log(1)   }  //如何完善a,使其正確打印1  //答案 var a = {   i : 0,    //聲明一個屬性i     valueOf:function ( ) {      return ++a.i;    //每調用一次,讓對象a的i屬性自增一次并且返回     }  }  if (a == 1 && a == 2 && a == 3){  //每一次運算時都會調用一次a的valueOf()方法   console.log ( "1" );  }
登錄后復制

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
а√天堂8资源在线| 黄色精品网站| 日韩一区二区三区免费视频 | 中文亚洲免费| 蜜臀精品一区二区三区在线观看 | 给我免费播放日韩视频| 日韩一区自拍| 国产毛片一区| 欧美精品福利| 日本一区二区免费高清| 人人草在线视频| 伊人精品一区| 亚洲三级精品| 国产欧美自拍| 日韩一区亚洲二区| 一区二区精彩视频| 久久三级毛片| 免费精品国产的网站免费观看| 国产女优一区| 欧美伊人影院| 久久久久久久久99精品大| 亚洲视频电影在线| 国际精品欧美精品| 国产一级久久| 久久99精品久久久久久园产越南 | 欧美午夜精彩| 视频一区中文字幕精品| 精品日韩一区| 亚洲欧美网站| 精品国产乱码久久久久久樱花| 日韩精品欧美| 日本高清久久| 韩国精品主播一区二区在线观看| 日韩中文字幕一区二区三区| 久久久久九九精品影院| 黑丝美女一区二区| 久久国产精品免费一区二区三区| 国产中文在线播放| 综合激情网站| 国产一区二区三区国产精品| 欧美日韩国产综合网| 欧美精品中文字幕亚洲专区| 午夜精品久久久久久久久久蜜桃| 日韩一区二区三区四区五区| 国产精品久久久久av电视剧| 日韩激情中文字幕| 欧美不卡在线| 精品免费视频| 日韩一区二区三区四区五区| 偷拍精品精品一区二区三区| 日韩激情视频网站| 欧美日韩黑人| 精品国内亚洲2022精品成人| 婷婷亚洲五月| 欧美a一区二区| 久久夜色精品| 一本大道色婷婷在线| 国产亚洲一区二区三区啪| 欧美精品一区二区三区精品| 91视频一区| 91麻豆精品激情在线观看最新| 久久三级福利| 国产一区精品福利| 国产精品久久久久久久久免费高清| 国产精品三上| 99精品在线观看| а√天堂8资源在线| 久久免费福利| 国产精成人品2018| 日韩精品三级| 久色成人在线| 男女精品网站| 影院欧美亚洲| 成人羞羞视频播放网站| 美女久久精品| 国产精品一级在线观看| 日本va欧美va瓶| 中文字幕免费一区二区| 亚洲综合日韩| 久久午夜精品一区二区| 亚洲精华国产欧美| 欧美日韩国产免费观看| 欧美日韩国产免费观看视频| 99视频精品全部免费在线视频| 福利一区在线| 福利一区视频| 国产精品13p| 欧美成人a交片免费看| 麻豆传媒一区二区三区| 国产精品中文字幕制服诱惑| 日韩av影院| 亚洲精品美女| 免费日本视频一区| 亚洲欧美日韩国产一区| 老司机精品久久| 亚洲一级大片| 日韩精品亚洲一区二区三区免费| 亚洲2区在线| 日韩精品成人| 久久国产三级| 老牛国内精品亚洲成av人片| 免费日韩成人| 国内一区二区三区| 国产h片在线观看| 欧美精品高清| 最新日韩av| 蜜芽一区二区三区| 日本不卡的三区四区五区| 日韩欧美中文字幕在线视频| 人人爱人人干婷婷丁香亚洲| 国产精品va| 韩国精品主播一区二区在线观看| 午夜国产精品视频| 亚洲精品一二三**| 国产欧美日韩影院| 精品三级久久久| 久久精品国产大片免费观看| 每日更新成人在线视频| 日韩毛片网站| 成人国产精选| 欧美日韩国产探花| 日韩国产精品久久久| 欧美黄页在线免费观看| 在线手机中文字幕| 亚洲激情二区| 国产一精品一av一免费爽爽| 97在线精品| 久久成人亚洲| 国产精品theporn| 蜜桃av.网站在线观看| 亚洲精品1区2区| 国产精品一区二区免费福利视频| 日韩毛片视频| 天堂va欧美ⅴa亚洲va一国产| 精品国产一区二区三区性色av| 亚洲国内欧美| 欧美日一区二区在线观看| 国产精品99视频| 老司机久久99久久精品播放免费| 国产精品激情电影| 不卡中文一二三区| 国产精品欧美大片| 色吊丝一区二区| 久久国产日韩欧美精品| 麻豆精品蜜桃| 日本欧美在线| 亚洲二区视频| 国产精品亚洲欧美日韩一区在线| 欧美日韩色图| 奇米777国产一区国产二区| 日本美女一区| 国产亚洲一区二区三区啪| 99久久激情| 国产极品模特精品一二| 欧美日韩国产在线观看网站| 国产精品免费99久久久| 免费毛片在线不卡| 久久精品国产久精国产| 男女性色大片免费观看一区二区 | 国产日韩欧美一区二区三区| 日本久久成人网| 国产亚洲一区二区三区啪| 国产综合色产| 欧美黑人做爰爽爽爽| 蜜臀av亚洲一区中文字幕| 三级精品视频| 久久精品日韩欧美| 日韩欧美2区| 亚洲精品电影| 黄色在线网站噜噜噜| 国产日韩欧美一区二区三区 | 日韩在线电影| 五月天久久久| 国产高清不卡| 久久福利在线| 日欧美一区二区| 六月婷婷一区| 成人精品天堂一区二区三区| 精品网站999| 日韩精品一二区| 91看片一区| 精品一区二区三区中文字幕在线| 一二三区精品| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲二区免费| 亚洲美女久久精品| 国产一区二区三区四区五区传媒 | 亚洲精品网址| 国产h片在线观看| 久久字幕精品一区| 国产精品日韩精品在线播放| 视频一区二区中文字幕| 欧美va天堂| 国产韩日影视精品| 999久久久国产精品| 日韩一区自拍| 日韩影院二区| 久久精品123| 久久一区二区三区喷水| 日韩精品91|