通过精彩且内容丰富的JavaScript is Sexy来学习,但我遇到了一些令我困惑的语法。我之前见过三元运算符,但从来没有以&&和像这样的运算符:
var sex = "Man";
var salutation = sex && sex === "Man" ? "Mr." : "Ms.";
// salutation = "Mr."
sex &&
部分似乎对我来说没什么用,而且似乎在没有它的情况下工作:
var salutation = sex === "Man" ? "Mr." : "Ms.";
// salutation = "Mr."
我在这里错过了什么吗?
答案 0 :(得分:1)
&&
运算符的使用是一种习惯用语,可确保只有左侧是 truthy 值才能评估表达式的右侧。
例如,查看此代码
obj.method && obj.method()
通过在这里使用&&
,我们确保仅在定义方法时调用该方法。如果没有定义方法,那么我们不会像没有&&
运算符那样得到错误。
在您的情况下,使用&&
运算符来明确当性别不是像<{1}}这样的真实值时会发生什么。