据我所知,逻辑&&
的工作方式如下
var test = false;
var foo = test && 42;
如果第一个条件评估为
42
,则此代码将foo
分配给true
仅。因此,在此示例中,foo
将保留其当前值。我想知道为什么这段代码根本不起作用:
var test = "";
var foo = test && 42;
现在,
foo
从分配的test
获取值。我很困惑空字符串是Javascript虚假值之一,那么在这种情况下&&
运算符为什么会失败?有人可以帮我解决这个规范吗?
最佳答案
您已经回答了自己的问题。
var foo = test && 42;
仅当
42
评估为true 时,才会将foo
分配给test
。因此,如果
test
为空字符串(评估为false),则不会将42分配给foo
,foo
将为空字符串。