1、JS 中的&&屬于短路的與:
如果第一個值為 false,則不會執(zhí)行后面的內(nèi)容。
如果第一個值為 true,則繼續(xù)執(zhí)行第二條語句,并返回第二個值。
舉例:
const a1 = 'qianguyihao';
// 第一個值為true,會繼續(xù)執(zhí)行后面的內(nèi)容
a1 && alert('看 a1 出不出來'); // 可以彈出 alert 框
const a2 = undefined;
// 第一個值為false,不會繼續(xù)執(zhí)行后面的內(nèi)容
a2 && alert('看 a2 出不出來'); // 不會彈出 alert 框
2、JS 中的||屬于短路的或:
如果第一個值為 true,則不會執(zhí)行后面的內(nèi)容。
如果第一個值為 false,則繼續(xù)執(zhí)行第二條語句,并返回第二個值。
舉例:
const result; // 請求接口時,后臺返回的內(nèi)容
let errorMsg = ''; // 前端的文案提示
if (result && result.retCode != 0) {
// 接口返回異常碼時
errorMsg = result.msg || '活動太火爆,請稍后再試'; // 文案提示信息,優(yōu)先用 接口返回的msg字段,其次用 '活動太火爆,請稍后再試' 這個文案兜底。
}
if (!result) {
// 接口掛掉時
errorMsg = '網(wǎng)絡(luò)異常,請稍后再試';
}