14

我在 Javascript 示例中看到了这一点

my_var = my_var || 69

我认为这意味着检查 my_var 是否存在,如果不存在则将 my_var 设置为 69。是这种情况吗?有没有关于这方面的任何文档,很难表示为 google/SO 搜索,有人可以指出我的文档方向或重复 QA 吗?

(示例没有使用69,那只是我粗鲁)

4

3 回答 3

12

很容易在 JS 控制台中尝试。

var my_var
my_var = my_var || 69
//69

var my_var = 5
my_var = my_var || 69
//5

仅当变量当前带有虚假值时,您才设置该变量。

JS 中的虚假值是:

  1. false
  2. null
  3. undefined
  4. 空字符串''
  5. 数字 0
  6. 数字 NaN
于 2013-05-10T09:35:04.750 回答
0

大多数时候它被称为“默认”。值“默认”为 之后的值||。该操作是松散的比较,就像您if使用==.

任何不虚假的东西,例如:

  • 错误的
  • 空字符串 ( '')
  • 无效的
  • 不明确的
  • 0

被认为是真的。如果第一个值不是这些值中的任何一个,那么它就是分配的值。如果是,则分配右侧的值。

于 2013-05-10T09:37:06.770 回答
0

运算符有两个操作数(|| or左和右)。它检查左侧的值是否为真,如果是,则将其分配给变量,否则将右侧的值分配给变量。

var my_var = false;
my_var = my_var || true;
//true
于 2013-05-10T09:39:13.190 回答