最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

前端常用判斷符號(hào)??,?.?,!?,!!?,||?,&&,?:用法示例

 更新時(shí)間:2024年03月16日 15:14:58   作者:qq_48146070  
這篇文章主要給大家介紹了關(guān)于前端常用判斷符號(hào)??,?.?,!?,!!?,||?,&&,?:的相關(guān)資料,?在日常編寫(xiě)中,我們會(huì)頻繁使用以下幾個(gè)符號(hào),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

??符號(hào)用于判斷左側(cè)值是否為undefined或null, 若值為undefined或null則將右側(cè)值賦值給左側(cè)變量。

const name = obj.name?? 'mx'; // 若obj中存在name則name為obj.name的值否則則為mx。

?.符號(hào)用于判斷某個(gè)對(duì)象的某個(gè)屬性是否存在,若存在則返回該屬性值,若不存在則返回undefined。防止引用對(duì)象為undefined或null時(shí)報(bào)錯(cuò)

let obj; // 此時(shí)obj未賦值,故為undefined
const name = obj?.name // name為undefined而不會(huì)報(bào)錯(cuò)。 

?.可以在對(duì)象不存在時(shí)返回undefined,而??可以在左側(cè)值為undefined時(shí)返回右側(cè)的值,因此兩者可以結(jié)合使用如下

let obj;
const name = obj?.name ?? 'mx'; //由于obj為undefined,因此左側(cè)值為undefined,故返回mx賦值給name

const name = obj?.name || 'mx'; //當(dāng)然此處使用||也可達(dá)成同樣效果

!就是將右側(cè)值先轉(zhuǎn)化為bool值后在進(jìn)行取反,因此對(duì)于空對(duì)象或者空數(shù)組的取反取值為false,因?yàn)榭諏?duì)象或空數(shù)組轉(zhuǎn)化為bool值為true。

!!則為在一個(gè)!將右側(cè)值轉(zhuǎn)化為bool值取反后再取反。

||該運(yùn)算符取值邏輯為判斷時(shí)將值轉(zhuǎn)化為bool值判斷左側(cè)值為true or false,左側(cè)值為true則直接取左側(cè)值,為false再判斷右側(cè)為true則返回右側(cè)值都為false則返回false。

&&該運(yùn)算符取值邏輯為判斷時(shí)轉(zhuǎn)化為bool值判斷左側(cè)值為true or false,左側(cè)值為false則直接返回false,左側(cè)值為true再判斷右側(cè),右側(cè)為false則仍為false,為true則返回右側(cè)值。

console.log(1 && 2) // 返回2

console.log(1 || 2) // 返回1

?:該運(yùn)算符通過(guò)判斷?前面的值為true or false 來(lái)決定返回:左右的值。

const name = true ? 'mx' : 'mxa' // 返回mx,若前面值為false則返回mxa

順便記錄一下一些true或false的轉(zhuǎn)換判斷。

空對(duì)象與空數(shù)組在進(jìn)行bool類型轉(zhuǎn)換時(shí)是轉(zhuǎn)化為true值,但在進(jìn)行number類型轉(zhuǎn)換時(shí)轉(zhuǎn)換為0。y因此會(huì)有以下現(xiàn)象

console.log(!{} == true); // 判斷為false,!{},{}首先轉(zhuǎn)換為true,再取反為false
console.log({} == true);  // 判斷也為false,{}轉(zhuǎn)換為0,true轉(zhuǎn)換為1,因此為false

null==undefined比較為true,null以及undefined任意一個(gè)單獨(dú)與true或false==比較取值都為false。

?. 和 ?? 的區(qū)別

  • ?. 是可選鏈運(yùn)算符,用于訪問(wèn)一個(gè)可能為空或者未定義的對(duì)象的屬性,如果對(duì)象為空或者未定義,它會(huì)返回 undefined,而不會(huì)拋出錯(cuò)誤。 例如,如果 obj 是一個(gè)對(duì)象,那么 obj?.name 會(huì)返回 obj 的 name 屬性,如果 obj 是 null 或者 undefined,那么 obj?.name 會(huì)返回 undefined。
  • ?? 是空值合并運(yùn)算符,它用于提供一個(gè)默認(rèn)值,當(dāng)左邊的表達(dá)式為 null 或者 undefined 時(shí),它會(huì)返回右邊的表達(dá)式的值,否則返回左邊的表達(dá)式的值。例如,如果 x 是一個(gè)變量,那么 x ?? 0 會(huì)返回 x 的值,如果 x 是 null 或者 undefined,那么 x ?? 0 會(huì)返回 0。

?? 和 || 的區(qū)別

  • ?? 只會(huì)在左邊的表達(dá)式為 null 或者 undefined 時(shí),返回右邊的表達(dá)式的值,否則返回左邊的表達(dá)式的值。這意味著,如果左邊的表達(dá)式是一個(gè)假值,例如 false、0、"" 等,它仍然會(huì)被返回。
  • || 會(huì)在左邊的表達(dá)式為任何假值時(shí),返回右邊的表達(dá)式的值,否則返回左邊的表達(dá)式的值。這意味著,如果左邊的表達(dá)式是一個(gè)真值,例如 true、1、"hello" 等,它會(huì)被返回。

總結(jié)

到此這篇關(guān)于前端常用判斷符號(hào)??,?. ,! ,!! ,|| ,&&,?:的文章就介紹到這了,更多相關(guān)前端常用判斷符號(hào)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 兩種js監(jiān)聽(tīng)滾輪事件的實(shí)現(xiàn)方法

    兩種js監(jiān)聽(tīng)滾輪事件的實(shí)現(xiàn)方法

    下面小編就為大家?guī)?lái)一篇兩種js監(jiān)聽(tīng)滾輪事件的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • LayUi數(shù)據(jù)表格自定義賦值方式

    LayUi數(shù)據(jù)表格自定義賦值方式

    今天小編就為大家分享一篇LayUi數(shù)據(jù)表格自定義賦值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-10-10
  • Javascript連接數(shù)據(jù)庫(kù)查詢并插入數(shù)據(jù)

    Javascript連接數(shù)據(jù)庫(kù)查詢并插入數(shù)據(jù)

    這篇文章主要介紹了Javascript連接數(shù)據(jù)庫(kù)查詢并插入數(shù)據(jù),下面文章圍繞主題展開(kāi)詳細(xì)內(nèi)容,具有一的參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-03-03
  • 最新評(píng)論

    邛崃市| 阜新市| 斗六市| 达尔| 乌拉特前旗| 连山| 沅陵县| 通化县| 宜川县| 泰兴市| 天台县| 盘山县| 连山| 锦屏县| 洪雅县| 融水| 冕宁县| 社会| 甘肃省| 祁阳县| 华宁县| 察雅县| 互助| 大埔区| 和平县| 丹江口市| 德化县| 威宁| 古浪县| 丁青县| 阳山县| 榆社县| 临洮县| 延寿县| 家居| 平江县| 台南县| 涟水县| 习水县| 吉安市| 那曲县|