试着理解这个语法

Trying to understand this syntax

本文关键字:语法      更新时间:2023-09-26

通过奇妙和信息丰富的JavaScript学习是性感的,但是我遇到了一些让我困惑的语法。我以前见过三元运算符,但从来没有在前面加上&&像这样的操作符:

var sex = "Man";
var salutation  = sex && sex === "Man" ? "Mr." : "Ms.";
// salutation = "Mr."

sex &&部分对我来说似乎是不必要的,没有它似乎也能工作:

var salutation = sex === "Man" ? "Mr." : "Ms.";
// salutation = "Mr."

我错过了什么吗?

&&操作符的使用是一种习惯用法,它确保表达式的右侧只有在左侧为真值时才被求值。

例如,看看下面的代码

obj.method && obj.method()

通过在这里使用&&,我们确保该方法仅在定义时才被调用。如果没有定义该方法,那么我们就不会像没有&&操作符那样得到错误。

在你的例子中,&&运算符被用来明确当性不是像undefined那样的真实值时会发生什么。