将三元运算符转换为 if / else 语句



我为我的应用程序找到了修复程序,但我复制并粘贴了与其余代码不匹配的代码,我想将这些三元运算符转换为 if/else 语句。

const name = persona ? persona.player_name : steamID.getSteamID64();

我尝试做:

const name = persona;
if (name = persona) {
persona.player_name;
} else {
steamID.getSteamID64;
}

但是它没有用,任何帮助将不胜感激,谢谢!

只需执行以下操作:

let name = '';
if (persona) {
name = persona.player_name;
} else {
name = steamID.getSteamID64();
}

错误在于,在这个例子中,三元运算符不检查相等性,而是检查undefined,这意味着你的示例将转换为以下内容:

let name = undefined;
if (persona !== undefined) {
name = persona.player_name;
} else {
name = steamID.getSteamID64();
}

它将用人类语言编写,如下所示:如果定义了角色,则将属性player_name分配给名为name的变量。如果未定义角色,则将steamID.getSteamID64()的结果分配给name

这是可能的,因为仅检查if(foo)if (foo !== undefined)的简写。三元运算符是一个内联 if 条件,因此if(foo)可以转换为foo ? then : else

你可以采用var语句来声明值,稍后再赋值。

const需要一个值,并且小心name作为变量,因为这是窗口名称window.name的缩写形式。

var name;
if (persona) name = persona.player_name;
else name = steamID.getSteamID64();

最新更新