var text = 'abc';
if(text = '' || text != '')
console.log(text);
else
console.log('in else');
它只是一个无用的代码片段,但它给出了我根本没想到的奇怪结果。所以我的好奇心把我带到了这里。
仅打印true
。
为什么将text
值更新为true
而不是将其设置为空?
答案 0 :(得分:7)
表达式
text = '' || text != ''
被解析为
text = ('' || text != '')
的值
('' || text != '')
是布尔值true
,因为text != ''
是true
。
答案 1 :(得分:2)
条件'' || text != ''
评估为true
。然后将此值分配给变量text
。
此处,''
为false值,因此执行||
(OR)后的下一个条件。由于text
的值不是空字符串,因此条件text != ''
返回true,并将此值分配给text
。