试着理解这个语法
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
那样的真实值时会发生什么。
相关文章:
- 铬:“;未捕获的语法错误:意外的标记:"
- jQuery语法添加了var
- Javascript未捕获语法错误意外的标识符错误
- 为什么忽略了eval()代码中的语法错误
- 难以访问的JS环境中的语法错误
- 如何告诉MathJax对下标使用替代语法
- Javascript语法向设置发出sessionStorage值
- 未捕获的语法错误:意外的标记{
- 使用$scope方法时的ControllerAs语法
- "未捕获的语法错误:意外的标记}"
- javascript自执行函数-不同的语法
- 函数的Javascript语法
- WinJS内联绑定语法
- 使用JS函数来使用另一个函数的语法?node.js
- 未捕获的语法错误:无法在“文档”上执行“查询选择器”
- 有没有针对带有表的JavaScript的Markdown语法解析器
- 在递归生成器函数中,yield后面的*(星号/星号)语法意味着什么
- React JS:未捕获(在承诺中)语法错误:在位置 0 的 JSON 中意外<令牌
- 当使用控制器作为语法时,如何从父指令继承属性
- 如何将样式分配给php语法