JavaScript:数组推送方法

JavaScript:数组推送方法,javascript,Javascript,将文本视为数组变量,请解释如下所示的push方法语句: var text = []; text.push(document.getElementById('name').innerHTML || 0); 如果dom元素的id='name'不是空的,它会将它的HTML内容添加到文本数组中,否则它会将0添加到其中。技巧在于,在类似这样的布尔测试中,空字符串的计算结果为false 例如: var a = "" || 0; // a is set to 0 because "" is

将文本视为数组变量,请解释如下所示的push方法语句:

var text = [];
text.push(document.getElementById('name').innerHTML || 0);

如果dom元素的id='name'不是空的,它会将它的HTML内容添加到文本数组中,否则它会将0添加到其中。

技巧在于,在类似这样的布尔测试中,空字符串的计算结果为false

例如:

var a = "" || 0;          // a is set to 0 because "" is empty and is false
var b = "non-empty" || 0  // b is set to "non-empty" because it's not an empty string

将innerHTML字符串或0添加到数组的末尾…需要解释什么?您是否在开发人员控制台中尝试过?复制粘贴的考试问题?我对JavaScript是新手,我的困惑只是该语句中的“| | 0”部分。我的意思是,将此部分与document.getElementById'name.innerHTML一起添加的目的是什么,虽然我也在猜测同样的情况,但还是有点怀疑,所以我想让专家确认一下,因为我以前从未见过这样的表达方式……再次感谢你让我明白这一点:-从技术上讲,是falsy,不是吗false@user1934643好吧,我有点后悔我的投票现在太晚了,我知道。仅供参考,| |的这种用法称为短路布尔求值。在上面的评论中,请参阅尽可能重复的问题。@bfavaretto撤回接近票数的投票永远不会太晚。我们有一件事叫做重新开放投票。但是,如果重新打开,下一步就是将其作为副本关闭。@JanDvorak在这种情况下,我很遗憾我选择dupe的原因是关闭投票,但找不到一个好的,投票太本地化了。因此,我不会投票重新开放,只是为了再次关闭。谢谢你的意见,亲爱的,让我明白这一点。。。。。