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

JavaScript可選鏈的實(shí)現(xiàn)示例

 更新時(shí)間:2024年01月04日 09:07:47   作者:網(wǎng)絡(luò)點(diǎn)點(diǎn)滴  
本文主要介紹了JavaScript可選鏈的實(shí)現(xiàn)示例,它通過(guò)使用問(wèn)號(hào)(?)來(lái)判斷屬性或函數(shù)是否存在,避免了因?yàn)閷傩曰蚝瘮?shù)不存在而導(dǎo)致的錯(cuò)誤,具有一定的參考價(jià)值,感興趣的可以了解一下

注:本節(jié)仍然使用之前的飯店的對(duì)象,可以看上幾篇文章查看代碼

如果我們想要看看飯店周一的開(kāi)門(mén)時(shí)間,我們會(huì)這么寫(xiě)

console.log(restaurant.openingHours.mon.open);

在這里插入圖片描述

原因是我們?cè)陂_(kāi)放時(shí)間中并沒(méi)有定義周一的開(kāi)放時(shí)間,所有會(huì)報(bào)錯(cuò);

那我們?cè)撊绾谓鉀Q呢,之前我們可能會(huì)添加一個(gè)IF語(yǔ)句來(lái)解決,例如

if (restaurant.openingHours.mon)
console.log(restaurant.openingHours.mon.open);

這樣確實(shí)能解決,但是這時(shí)候我們好像不僅需要判斷mon存不存在,我們可能還需要去判斷openingHours存不存在,那么我們可能還會(huì)這么寫(xiě)

if (restaurant.openingHours && restaurant.openingHours.mon)
console.log(restaurant.openingHours.mon.open);

這樣就太過(guò)于復(fù)雜了,判斷太多,代碼不簡(jiǎn)潔

ES2020,引入了可選鏈接

上面的代碼可以這樣寫(xiě)

console.log(restaurant.openingHours.mon?.open);

當(dāng)然,可選連接也可以多層可選

console.log(restaurant.openingHours?.mon?.open);

真實(shí)

如果我們不知道飯店周幾開(kāi)門(mén),也不知道周幾的幾點(diǎn)開(kāi)門(mén),我們可以逐一的去判斷
首先我們創(chuàng)建一個(gè)周一到周日的數(shù)組

const days = ['mon','the','wed','thu','fri','sat','sun'];

然后通過(guò)我們之前學(xué)習(xí)的for-of去將數(shù)組的每一個(gè)數(shù)據(jù)循環(huán)出來(lái)

for (const day of days) {
  console.log(day);
}

在這里插入圖片描述

接著我們就可以通過(guò)可選連接來(lái)進(jìn)行判斷,從來(lái)去得到開(kāi)門(mén)和關(guān)門(mén)的時(shí)間

for (const day of days) {
  const open = restaurant.openingHours[day]?.open;
  console.log(`${day}的開(kāi)門(mén)時(shí)間是${open}點(diǎn)`);
}

在這里插入圖片描述

這樣我們就可以一下看到周幾開(kāi)門(mén),開(kāi)門(mén)的時(shí)間是多久了

那如果我們不想讓不開(kāi)門(mén)的星期為undefined,怎么辦呢?向之前一樣,給他設(shè)置一個(gè)默認(rèn)值

for (const day of days) {
  const open = restaurant.openingHours[day]?.open ?? '不開(kāi)門(mén)';
  console.log(`${day}的開(kāi)門(mén)時(shí)間是${open}點(diǎn)`);
}

在這里插入圖片描述

可選鏈判斷方法是否存在

console.log(restaurant.order?.(0,1) ?? "方法不存在");
console.log(restaurant.ordertest?.(0,1) ?? "方法不存在");

在這里插入圖片描述

可選鏈判斷數(shù)組是否存在

const users = [{ name: 'jonas',email: 'example@jonas.com'}];
console.log(users[0]?.name ?? '用戶(hù)不存在');

在這里插入圖片描述

總結(jié)

JavaScript中的可選鏈?zhǔn)且环N語(yǔ)法特性,用于簡(jiǎn)化訪問(wèn)嵌套對(duì)象屬性或調(diào)用嵌套函數(shù)的過(guò)程。它通過(guò)使用問(wèn)號(hào)(?)來(lái)判斷屬性或函數(shù)是否存在,避免了因?yàn)閷傩曰蚝瘮?shù)不存在而導(dǎo)致的錯(cuò)誤。
具體而言,可選鏈接使用問(wèn)號(hào)(?)來(lái)替代傳統(tǒng)的點(diǎn)號(hào)(.)或方括號(hào)([])語(yǔ)法,在訪問(wèn)屬性或調(diào)用函數(shù)時(shí)可以在鏈?zhǔn)綄傩灾g插入問(wèn)號(hào),以確保安全訪問(wèn)。如果鏈?zhǔn)街械哪硞€(gè)屬性或函數(shù)不存在,可選鏈接會(huì)返回 undefined 而不會(huì)拋出錯(cuò)誤,從而避免程序中斷。

到此這篇關(guān)于JavaScript可選鏈的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)JavaScript可選鏈內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

阿巴嘎旗| 宝山区| 镇赉县| 巴彦淖尔市| 财经| 修水县| 琼中| 虎林市| 郎溪县| 普定县| 永清县| 衡水市| 茂名市| 桂东县| 平阴县| 大田县| 利辛县| 宿州市| 福建省| 临猗县| 隆德县| 深水埗区| 濉溪县| 彭水| 都江堰市| 巩义市| 高碑店市| 思茅市| 绥中县| 泸水县| 滁州市| 马边| 卢氏县| 凉山| 射洪县| 兴城市| 崇礼县| 马鞍山市| 潞西市| 如皋市| 浦北县|