var FOO = FOO || 如何实现Javascript 中的 {} 习惯用法?

2024-03-01

从这个问题来看:“var FOO = FOO || {}”(将变量或空对象分配给该变量)在 Javascript 中意味着什么? https://stackoverflow.com/questions/6439579/what-does-var-foo-foo-assign-a-variable-or-an-empty-object-to-that-va

我了解到var FOO = FOO || {}本质上意味着“如果 FOO 存在,则保持不变,否则使其成为空对象”。

But how?

这就是我解析此语法的方式:

var FOO = (FOO || {})

So: If FOO存在 AND 计算结果为布尔值 True,然后(FOO || {})将返回 True,所以最终FOO将被完全覆盖,并从现在起保留 True 的布尔值。

Else (FOO || {})将返回任何布尔值{}评估为.由于是一个空对象,{}is,总是评估为 True...

那么在任何情况下(FOO || {})应该评估为 True,所以...

在任何可能的情况下,评估后var FOO = FOO || {}, FOO 应该保存 True 的简单布尔值,无论它之前保存的是什么。本质上,据我了解,var FOO = FOO || {}应该等于var FOO = True.

我的错误在哪里?


如果 FOO 存在并且计算结果为布尔值 True,则 (FOO || {}) 将返回 True

事情不是这样的||运算符在 JS 中工作。

正确的解释是:

如果左侧是真值,则按左侧计算(即FOO),否则计算为右侧(即{}).

var zero = 0;
var one = 1;
var two = 2;

console.log(zero || two);
console.log(one || two);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

var FOO = FOO || 如何实现Javascript 中的 {} 习惯用法? 的相关文章

随机推荐