我为我的应用程序找到了修复程序,但我复制并粘贴了与其余代码不匹配的代码,我想将这些三元运算符转换为 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();