2 回答

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊
有多種方法,正如您從其他人的各種建議中看到的那樣,這取決于您想要完成什么以及您的代碼在做什么。
||如果提供的輸入undefined如下所示,您可以使用 or ( ) 運(yùn)算符回退到默認(rèn)/安全值
let userInput; //undefined`
let x = userInput || "a safe value";
本質(zhì)上,“讓 x 成為 userInput 的任何內(nèi)容,除非它是undefined(或NaN,,null...)。
同樣,您可以進(jìn)行if檢查以確保您期望的值可用且有效:
if(userInput){
//Happy path, userInput is valid.
}
else {
// Not so happy path, do something about it to handle the invalid value.
}
try-catch如果你想處理這個(gè)案例,你可以使用一個(gè)塊。有多種拋出、捕獲和處理錯(cuò)誤的方法,但如果你想通知用戶他們的輸入無效,你可以這樣做:
try {
//stuff may happen here
if(userInput) {
throw new TypeError("A useful description of why this was thrown");
}
//if userInput is value, then continue...
}
catch(error){
alert("Oops! Seems like the value you entered is not valid. Error:" + error);
}
注意:如果您不確定什么是最好的方法,那么如果您能為我們提供更多代碼和上下文將會(huì)很有用,這樣我們就可以在確定處理此問題的最佳方法之前了解如何以及何時(shí)分配值.
看起來您正試圖在用戶有機(jī)會(huì)輸入之前訪問用戶的輸入數(shù)據(jù),在這種情況下,重構(gòu)您的代碼會(huì)更好。

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以用于||
短路評(píng)估
const data = {
'def.txt': {
name: 'def'
}
}
console.log((data['abc.txt'] || {}).name)
console.log((data['def.txt'] || {}).name)
添加回答
舉報(bào)