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

时间:2019-11-26 14:33:15

标签: javascript node.js

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

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

我试图做:

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

但是它没有用,谢谢您的帮助!

3 个答案:

答案 0 :(得分:1)

只需:

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

答案 1 :(得分:1)

错误是,在此示例中,三元运算符不检查是否相等,而对于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

答案 2 :(得分:0)

您可以使用var语句声明该值,然后再分配。

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

var name;

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