我对使用&&
这样的声明变量的实际应用感兴趣:
var x = undefined && 4;
// Evaluate to the first falsey value
// or else the last value.
eval(x);
// undefined
我了解如何评估价值(请参阅此 SO answer)。我也了解它的姐妹||
(请参阅此处以获取详细说明)以及为什么使用以下表达式声明变量会很有用:
// Some other variable
var y;
var x = y || 4;
// Evaluate to the first truthy value
// or else the last value.
实际上:使用第一个值,除非第一个值是错误的;如果是这样,请使用最后一个值。我们可以||
在浏览器控制台中演示这个特性:
> null || 4
4
> 4 || null
4
> null || undefined
undefined
> undefined || null
null
> true || 4
true
> 4 || true
4
至于&&
:
> null && 4
null
> 4 && null
null
> null && undefined
null
> undefined && null
undefined
> true && 4
4
> 4 && true
true
我们是否应该理解为:使用第一个值,除非第一个值是真实的;如果是这样,使用最后一个值?
我对使用编码快捷方式来尽量减少条件语句的使用很感兴趣,我想知道我是否能够以某种方式使用它。
我在 jQuery 核心源代码的第 472 行找到了这种编码方法的示例:
scripts = !keepScripts && [];
所以问题是这样的:任何人都可以描述一个&&
在 javascript 变量声明中使用的好的上下文吗?你认为这是不好的做法吗?
谢谢!