And*_*old 6 javascript jquery ecmascript-5
据我所知,逻辑&&如下
var test = false;
var foo = test && 42;
Run Code Online (Sandbox Code Playgroud)
此代码,将分配42到foo 仅第一条件被评估为true.所以在这个例子中,foo将保持其当前值.
我想知道为什么这个片段根本不起作用:
var test = "";
var foo = test && 42;
Run Code Online (Sandbox Code Playgroud)
现在,foo从test分配中获取值.我很困惑.该空字符串是的Javascript的一个falsy值,那么,为什么在&&运营商在这种情况下会失败呢?
有人可以帮我解决这个问题吗?
你误解了操作员.
foo = x && y将永远分配foo.
该&&运算符计算它的最左边的"falsy"操作数.
false && 42评估为假; "" && 42评估为"".
var foo = test && 42;分配false给foo.
你自己已经回答了你的问题。
var foo = test && 42;
Run Code Online (Sandbox Code Playgroud)
42foo 仅当test评估为 true时才会分配给。
因此,如果test是空字符串(评估为 false),则 42 不会分配给foo,foo将是空字符串。
| 归档时间: |
|
| 查看次数: |
104 次 |
| 最近记录: |