编程语言
首页 > 编程语言> > JavaScript,如果替代

JavaScript,如果替代

作者:互联网

参见英文答案 > Question mark and colon in JavaScript                                    7个
这段代码代表什么?我知道它是某种替代语法……

pattern.Gotoccurance.score != null ? pattern.Gotoccurance.score : '0'

更新:

这种编码有什么需要?这是效率更高还是只是一个效率相同的缩短版本?

解决方法:

它是conditional运算符,它相当于这样的东西:

if (pattern.Gotoccurance.score != null) {
  pattern.Gotoccurance.score;
} else {
  '0';
}

但我认为你发布的代码中缺少一个赋值语句,如下所示:

var score = pattern.Gotoccurance.score !=null ? pattern.Gotoccurance.score : '0';

如果pattern.Gotoccurance.score不为null,则将分配score变量:

var score;
if (pattern.Gotoccurance.score != null) {
  score = pattern.Gotoccurance.score;
} else {
  score = '0';
}

在JavaScript中执行此类“默认值”赋值的常见模式是使用逻辑OR运算符(||):

var score = pattern.Gotoccurance.score ||  '0';

仅当该值不是假值时,才会将pattern.Gotoccurance.score的值分配给score变量(假值为false,null,undefined,0,零长度字符串或NaN).

否则,如果它是假的’0’将被分配.

更新:性能将是等效的,您应该专注于可读性,我尝试在非常简单的表达式上使用三元运算符,并且您还可以改进格式,将其分成两行以使其更具可读性:

var status = (age >= 18) ? "adult"
                         : "minor";

相关问题:

> To Ternary or Not To Ternary?

标签:javascript,ternary-operator,conditional-operator
来源: https://codeday.me/bug/20190919/1812359.html