js通俗易懂的&&与||或运算

使用&&将返回第一个条件为假的值。

如果每个操作数的计算值都为true,

则返回最后一个计算过的表达式。

let one = 1, two = 2, three = 3;
console.log(one && two && three);

// Result: 3console.log(0 && null); // Result: 0

使用||将返回第一个条件为真的值。

如果每个操作数的计算结果都为false,

则返回最后一个计算过的表达式。

let one = 1, two = 2, three = 3;
console.log(one || two || three);

// Result: 1console.log(0 || null); // Result: null

需求:是否遇到过访问嵌套对象属性的问题?你可能不知道对象或其中一个子属性是否存在,这可能会导致令人沮丧的错误。假设我们想在this.state中访问一个名为data的属性,但是在我们的程序成功返回一个获取请求之前,data 是未定义的。根据我们使用它的位置,调用this.state.data可能会阻止我们的应用程序运行。为了解决这个问题,我们可以将其做进一步的判断:

if (this.state.data) {
  return this.state.data;
} else {
  return 'Fetching Data';
}

//但这似乎很重复。'或' 运算符提供了更简洁的解决方案

return (this.state.data || 'Fetching Data');

需求:

假设我们想返回一个变量的长度,但是我们不知道变量的类型。我们可以使用if/else语句来检查foo是可接受的类型,但是这可能会变得非常冗长。或运行可以帮助我们简化操作:

return (foo || []).length

如果变量foo是true,它将被返回。否则,将返回空数组的长度:0。

猜你喜欢

转载自www.cnblogs.com/ll15888/p/11996682.html