Javascript &&;评价问题
据我所知,逻辑Javascript &&;评价问题,javascript,jquery,ecmascript-5,Javascript,Jquery,Ecmascript 5,据我所知,逻辑&&的工作原理如下 var test = false; var foo = test && 42; 如果第一个条件的计算结果为true,则此代码仅将42分配给foo。因此在本例中,foo将保持其当前值 我想知道为什么这个片段根本不起作用: var test = ""; var foo = test && 42; 现在,foo从test中获取赋值。我很困惑。空字符串是Javascripts falsy值之一,那么为什么在这种情况下&&操作符会失败呢
&&
的工作原理如下
var test = false;
var foo = test && 42;
如果第一个条件的计算结果为true
,则此代码仅将42
分配给foo
。因此在本例中,foo
将保持其当前值
我想知道为什么这个片段根本不起作用:
var test = "";
var foo = test && 42;
现在,foo
从test
中获取赋值。我很困惑。空字符串是Javascripts falsy值之一,那么为什么在这种情况下&&
操作符会失败呢
有人能帮我解释一下这台机器的规格吗?你误解了操作员。
foo=x&&y
将始终分配foo
&&
运算符的计算结果为其最左侧的“falsy”操作数
false&&42
计算结果为false<代码>和&42的计算结果为“”
var foo=test&&42代码>将false
赋值给foo
您自己已经回答了问题
var foo = test && 42;
42
仅当test
评估为true时才会分配给foo
因此,如果test
为空字符串(计算为false),42将不会分配给foo
,foo
将为空字符串。@Yoshi,否,falsefoo=test&&42
只会在test为false时将false指定给foo,如果test为false,则test的值将被指定给foo,否则,42将被指定。?因此在本例中,foo将保留其当前值。“不,它将变为false
答案在您的问题中,”“==false