当前位置: 首页 > 面试题库 >

JavaScript OR(||)变量分配说明

终睿
2023-03-14
问题内容

鉴于这段JavaScript代码…

var a;
var b = null;
var c = undefined;
var d = 4;
var e = 'five';

var f = a || b || c || d || e;

alert(f); // 4

有人可以向我解释这种技术叫什么(我的最佳猜测是这个问题的标题!)?以及它如何/为什么确切起作用?

我的理解是,f将为变量分配第一个变量的最接近的值(从左到右),该变量的值不为null或未定义,但是我没有设法找到有关此技术的大量参考资料,并且看到它用了很多。

另外,这项技术是否专门针对JavaScript?我知道在PHP中执行类似操作会导致f具有真正的布尔值,而不是其d自身值。


问题答案:

如果变量是falsy,则可以指定一个默认值,在这种情况下为的值。y x

JavaScript中的布尔运算符可以返回操作数,而不是像其他语言那样总是返回布尔结果。

||如果第一个操作数为falsy,则逻辑OR运算符()返回其第二个操作数的值,否则返回第一个操作数的值。

例如:

"foo" || "bar"; // returns "foo"
false || "bar"; // returns "bar"

Falsy值是谁要挟到false布尔上下文中使用时,它们是0nullundefined,一个空字符串,NaN当然false



 类似资料:
  • 问题内容: Linux bash中确实存在类似于PHP中以下代码的内容: 也就是说,您在一个句子中为3个不同的变量分配了一个对应的值。 假设我有bash函数,该函数将stdout字符串“ qwert asdfg zxcvb”写入标准输出。是否可以做类似的事情: 等号左边的部分当然不是有效的语法。我只是想解释我的要求。 但是,有效的方法如下: 但是索引数组的描述性不如普通变量名。 但是,我可以这样做

  • 问题内容: 我的印象是,尽管语法有所不同,但下面的函数a和b在逻辑上是等效的。但是,它们不是,我也不了解它们之间的区别。 在我看来,他们俩都在分配: x对变量z的值, y的值对应于变量x,并且 x + y的值等于变量y。 有人能帮助消除我对多变量分配以及函数a和函数b之间的逻辑差异的误解吗? 问题答案: 分配可以认为是“原子”操作。也就是说,认为在所有操作完成之前,“ 左侧”的所有值都是“冻结”的

  • 问题内容: 我在Javascript中有一组全局计数器变量: 等等 然后,我有了一个Javascript函数,该函数接受一个映射到这些全局计数器的“索引”数字。在此函数内部,我需要使用传递给该函数的“索引”值来读写这些全局计数器。 我希望它如何工作的示例,但当然根本不起作用: 我希望我要实现的目标是明确的。如果没有,我会尽力澄清。谢谢。 编辑说明: 我不是要增加计数器的名称,而是要增加计数器包含的

  • 我是helm的新手,我希望能够使用配置映射和共享环境变量将gitlab项目变量写入文件。 我为每个环境(其中

  • 问题内容: 我正在使用以下代码: 该值不警报。怎么了 问题答案: 实质上:

  • 问题内容: 假设我有一个功能 现在,我想将函数分配给一个名为的变量,这样,如果我使用,它将再次调用该函数。如果我只是做作业,它就会返回。 问题答案: 您根本不调用该函数。 括号告诉蟒蛇,你调用的函数,所以当你把它们放在那里,它调用的功能,并指定值 返回 的(在这种情况下)。