一尘不染

Javascript || 或具有未定义变量的运算符

javascript

JavaScript中的另一种常见情况是为变量提供预设值(如果未定义),例如:

if(v){
  var x = v;
} else {
  var x = 10;
}

快捷方式表示法是双竖线字符:

var x = v || 10;

由于某种原因,我无法为我工作。是否真的有可能检查是否定义了v,如果x = 10则不定义?

谢谢。


阅读 318

收藏
2020-05-01

共1个答案

一尘不染

该Opera文章对正在发生的事情给出了不好的描述。

确实x会得到10if vis 的值undefined。如果具有 任何 “假”值也x将是正确的。10``v __

JavaScript中的“ falsey”值是:

  • 0
  • null
  • undefined
  • NaN
  • "" (空字符串)
  • false

因此您可以看到,除了just之外,还有许多情况x将被设置为。10``undefined

var v = 0;

var x = v || 10;

alert( x ); // alerts 10

分配v上面我指示的任何falsey值,您将获得相同的结果。

2020-05-01