试图理解这种语法

时间:2014-03-18 05:13:52

标签: javascript

通过精彩且内容丰富的JavaScript is Sexy来学习,但我遇到了一些令我困惑的语法。我之前见过三元运算符,但从来没有以&&和像这样的运算符:

var sex = "Man";

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

// salutation = "Mr."

sex &&部分似乎对我来说没什么用,而且似乎在没有它的情况下工作:

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

// salutation = "Mr."

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:1)

&&运算符的使用是一种习惯用语,可确保只有左侧是 truthy 值才能评估表达式的右侧。

例如,查看此代码

obj.method && obj.method()

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

在您的情况下,使用&&运算符来明确当性别不是像<{1}}这样的真实值时会发生什么。