欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

前端常用判斷符號??,?.?,!?,!!?,||?,&&,?:用法示例

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

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

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

?.符號用于判斷某個對象的某個屬性是否存在,若存在則返回該屬性值,若不存在則返回undefined。防止引用對象為undefined或null時報錯

let obj; // 此時obj未賦值,故為undefined
const name = obj?.name // name為undefined而不會報錯。 

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

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

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

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

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

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

&&該運算符取值邏輯為判斷時轉(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

?:該運算符通過判斷?前面的值為true or false 來決定返回:左右的值。

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

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

空對象與空數(shù)組在進行bool類型轉(zhuǎn)換時是轉(zhuǎn)化為true值,但在進行number類型轉(zhuǎn)換時轉(zhuǎn)換為0。y因此會有以下現(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任意一個單獨與true或false==比較取值都為false。

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

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

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

  • ?? 只會在左邊的表達式為 null 或者 undefined 時,返回右邊的表達式的值,否則返回左邊的表達式的值。這意味著,如果左邊的表達式是一個假值,例如 false0、"" 等,它仍然會被返回。
  • || 會在左邊的表達式為任何假值時,返回右邊的表達式的值,否則返回左邊的表達式的值。這意味著,如果左邊的表達式是一個真值,例如 true、1、"hello" 等,它會被返回。

總結(jié)

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

相關(guān)文章

  • javascript獲取checkbox復(fù)選框獲取選中的選項

    javascript獲取checkbox復(fù)選框獲取選中的選項

    這篇文章主要介紹了javascript獲取checkbox復(fù)選框獲取選中的選項的方法,需要的朋友可以參考下
    2014-08-08
  • 淺談JS中json數(shù)據(jù)的處理

    淺談JS中json數(shù)據(jù)的處理

    下面小編就為大家?guī)硪黄獪\談JS中json數(shù)據(jù)的處理。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • JavaScript中的類型判斷你真的了解了嗎

    JavaScript中的類型判斷你真的了解了嗎

    這篇文章主要為大家詳細(xì)介紹了JavaScript中類型判斷的相關(guān)常見方法,文中的示例代碼講解詳細(xì),對我們深入學(xué)習(xí)JavaScript有一定幫助,需要的可以參考下
    2023-11-11
  • JS中循環(huán)遍歷數(shù)組的幾種常用方式總結(jié)

    JS中循環(huán)遍歷數(shù)組的幾種常用方式總結(jié)

    文章主要總結(jié)了?JS?中循環(huán)遍歷數(shù)組的十二種常用方式,包括?for?循環(huán)(普通和優(yōu)化版)、forEach、map、filter、for…of、for…in、find、findIndex、some、every、reduce?等,并對它們的特點、語法、優(yōu)缺點、適用場景及返回值等進行了詳細(xì)說明,需要的朋友可以參考下
    2025-01-01
  • js實現(xiàn)鍵盤Enter鍵提交表單的方法

    js實現(xiàn)鍵盤Enter鍵提交表單的方法

    這篇文章主要介紹了js實現(xiàn)鍵盤Enter鍵提交表單的方法,涉及javascript鍵盤事件的相關(guān)操作技巧,需要的朋友可以參考下
    2015-05-05
  • 對象特征檢測法判斷瀏覽器對javascript對象的支持

    對象特征檢測法判斷瀏覽器對javascript對象的支持

    就是將需要檢測的方法/對象作為if語句的判斷條件,具體做法如下
    2009-07-07
  • jQuery設(shè)置和獲取select、checkbox、radio的選中值方法

    jQuery設(shè)置和獲取select、checkbox、radio的選中值方法

    select、checkbox、radio是很常用的表單控件,這篇文章主要介紹了jQuery設(shè)置和獲取select、checkbox、radio的選中值方法,有興趣的可以了解一下。
    2017-01-01
  • js中浮點型運算BUG的解決方法說明

    js中浮點型運算BUG的解決方法說明

    本篇文章主要是對js中浮點型運算BUG的解決方法進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • 微信小程序自動化部署的全過程

    微信小程序自動化部署的全過程

    由于微信小程序需要在微信小程序助手上發(fā)布,比較麻煩,可以配置CI 自動化的發(fā)布,下面這篇文章主要給大家介紹了關(guān)于微信小程序自動化部署的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • uniapp在開發(fā)app時上傳文件時的問題記錄

    uniapp在開發(fā)app時上傳文件時的問題記錄

    在開發(fā)uniapp應(yīng)用時,可能會遇到文件上傳功能在iOS和部分Android手機上不兼容的問題,經(jīng)過對比分析,發(fā)現(xiàn)問題可能出在文件的路徑上,通過使用uni.saveFile方法保存文件后,再上傳可以解決問題,這篇文章詳細(xì)介紹了解決方案,并引導(dǎo)讀者參考更多相關(guān)內(nèi)容
    2024-09-09

最新評論