if语句更新变量

时间:2015-10-16 16:01:06

标签: javascript if-statement

var text = 'abc';
if(text = '' || text != '')
    console.log(text);
else
    console.log('in else');

它只是一个无用的代码片段,但它给出了我根本没想到的奇怪结果。所以我的好奇心把我带到了这里。

仅打印true

为什么将text值更新为true而不是将其设置为空?

2 个答案:

答案 0 :(得分:7)

表达式

text = '' || text != ''

被解析为

text = ('' || text != '')

的值
('' || text != '')

是布尔值true,因为text != ''true

答案 1 :(得分:2)

条件'' || text != ''评估为true。然后将此值分配给变量text

此处,''为false值,因此执行||(OR)后的下一个条件。由于text的值不是空字符串,因此条件text != ''返回true,并将此值分配给text