gpt4 book ai didi

javascript - 在 Javascript 变量声明中使用逻辑与

转载 作者:搜寻专家 更新时间:2023-11-01 04:10:02 24 4
gpt4 key购买 nike

我对像这样使用 && 声明变量的实际应用很感兴趣:

var x = undefined && 4;

// Evaluate to the first falsey value
// or else the last value.

eval(x);
// undefined

我了解该值的评估方式(请参阅 this SO answer )。我也理解它的姐妹 ||(请参阅 here 以获得很好的描述)以及为什么使用以下表达式声明变量会很有用:

// 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

我们是否应该理解为:使用第一个值,除非第一个值是真值;如果是这样,使用最后一个值?

我对使用编码快捷方式来尽量减少条件语句的使用很感兴趣,我想知道我是否能够以某种方式使用它。

我在 line 472 中找到了这种编码方法的示例jQuery 核心源代码:

scripts = !keepScripts && [];

所以问题是:任何人都可以描述在 javascript 变量声明中使用 && 的良好上下文吗?您认为这是不好的做法吗?

谢谢!

最佳答案

一般来说,只有当它使代码对于典型的 JavaScript 程序员来说比替代方案可读时,您才应该只使用这样的“快捷方式”。

在考虑什么更具可读性、不那么令人惊讶时,请考虑

var foo;
if(bar) {
foo=[];
}

var foo = bar && [];

不一样。例如,如果 barNaN,那么 foo 在后一种情况下将是 NaN,这可能是稍后有点头疼。

既然有优化/最小化 JavaScript 的工具,您应该关注代码的可读性,这与简洁性并不总是一回事。

假设您在一行中有多个这样的重复初始化,它们都依赖于不同的变量(因此它们不能被包装到一个条件中),但遵循相同的逻辑公式。在这种情况下,一旦读者在脑海中解析了公式的含义,他们就可以快速扫描所有实例并查看每个实例之间的差异。在这种情况下,不是依赖大多数 JavaScript 程序员熟悉的约定(例如 var foo = some_opt || {}),而是创建一个本地化的约定,读者必须只为这个文件学习。即使在这种情况下,我还是建议您仔细考虑一下,这可能不值得。

关于javascript - 在 Javascript 变量声明中使用逻辑与,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14968152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com