在if语句中只使用导致if语句触发的变量

  • 本文关键字:语句 if 变量 javascript
  • 更新时间 :
  • 英文 :


说你有一个if语句:

try {
if (!a || !b || !c || !d) {
let nullVariable = ???;
// use the variable that is null
throw nullVariable
}
} catch (ex) {
log.debug(`${ex} is not defined`);
}

是否有一种内置的方式来查看哪个变量被设置为null,而无需为每个单独的变量创建if语句?

可以将赋值放在if条件表达式中。

let a, b, c, d;
a = 3;
b = "foo";
d = {x: 10};
let nullVariable = (!a && 'a') || (!b && 'b') || (!c && 'c') || (!d && 'd');
if (nullVariable) {
console.log(`${nullVariable} is not defined`);
}

您可以使用对象速记法提取变量名。

const fn = ({ a, b, c, d }) => {
let nullVariable = Object.entries({ a, b, c, d }).find(([_, val]) => !val)?.[0];

if(nullVariable)
console.log(nullVariable + ' is falsy');
};
fn({ a: 1, c: 2, d: 3 });
fn({ a: 1, b: 2, c: 3 });
fn({ a: 1, b: 2, c: 3, d: 4 });

最新更新