Doc*_*Doc 11

三元运算符使用三个操作数:

一个条件,后跟 a ?,后跟一个用于评估条件是否为“真”的表达式,后跟一个 a :,后跟一个用于评估条件是否为 的表达式falsey

因此,就您而言,您想要做的是:

country1 = country1 != null ? 'Turkey' : 'ABD';
Run Code Online (Sandbox Code Playgroud)

编辑:

您似乎对运算符有点困惑????称为空合并运算符

x = x ?? 'foo';
Run Code Online (Sandbox Code Playgroud)

相当于

if( x == null )
    x = 'foo';
else
    x = *whatever the value previously was*;
Run Code Online (Sandbox Code Playgroud)

因此,如果我们在检查之前x设置为,它不会更改为 ,因为不等于。另外,请注意,这里的语句是多余的。barfoobarnullelse

so??仅当变量先前为 null 时才会将其设置为某个值

在您的代码中,您尝试分配两个值Turkey或 之一ABD,如果前一个值为 null,则不分配单个值。所以你会得到一个语法错误。

所以,总结一下。

if() {}
else {}
Run Code Online (Sandbox Code Playgroud)

可以使用三元运算符来缩短? :

if(){}
Run Code Online (Sandbox Code Playgroud)

可以使用??运算符来缩短,因为这里的 else 语句只是多余的。

因此,您的代码的等效项将不会使用??运算符。