这是什么沟通:my_var = my_var || 69

时间:2013-05-10 09:33:13

标签: javascript

我在Javascript示例中看到了这个

my_var = my_var || 69

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

(这个例子没有使用69,这只是我的粗鲁)

3 个答案:

答案 0 :(得分:12)

在JS控制台中轻松尝试。

var my_var
my_var = my_var || 69
//69

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

只有当变量当前带有 falsy 值时才设置变量。

Falsy values in JS are:

  1. false
  2. null
  3. undefined
  4. 空字符串''
  5. 数字0
  6. 数字NaN

答案 1 :(得分:0)

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

任何不狡猾的事情:

  • 空字符串(''
  • 未定义
  • 0
  • 的NaN

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

答案 2 :(得分:0)

|| or运算符有两个操作数(左和右)。它检查左边的值是否真实,如果是,则将该值赋给变量,否则将右手值赋给变量。

var my_var = false;
my_var = my_var || true;
//true