以下只是一个理论上的 JavaScript 问题。我很好奇以下内容是否可以转换为单个语句:
if(!window.foo){
window.foo = [];
}
window.foo.push('bar');
这段代码大家应该都写过,但是能不能一行完成呢?
起初我认为这样的事情会起作用:
(window.foo || window.foo = []).push('bar');
但这不起作用,因为分配无效。接下来我尝试在推送时链接一些东西,但这不起作用,因为推送不返回数组。
关于这是否可以用纯 JavaScript 完成的任何想法?
(结果应该是 window.foo = ['bar']
)
原文由 mkoryak 发布,翻译遵循 CC BY-SA 4.0 许可协议
你的作业倒退了*。它应该是:
JavaScript 中的
||
运算符 _不返回布尔值_。如果左侧为真,则返回左侧,否则返回右侧。相当于
所以上面的另一种写法是:
\* 详情见评论