'var a = a ||的目的是什么?{b:1}'语法

Osk*_*ura 0 javascript

我想知道更长的时间,以下是什么意思:

var a = a || { b : 1 }
Run Code Online (Sandbox Code Playgroud)

如果'a'之前分配了任何属性......他们会消失.那么上面语法的目的是什么?

Lix*_*Lix 6

我喜欢这种语法.在我看来,它非常优雅.

解释相当简单.你在这里有一个使用||(或)运算符的条件表达式.这将根据条件的结果为变量赋值.

在这种情况下,条件是a || { b : 1 },所以如果a已经定义了变量(即不等于假值),那么变量a将保持不变.但是,如果a尚未定义,则将为其分配对象文字的值{ b : 1 }.

这种语法方法通常用于定义默认值.

例如:

function say_hello( name ){
  var the_name = name || 'Dude';
  alert( "Hello, " + the_name );
}

say_hello( "Lix" ); // OUTPUTS: Hello, Lix
say_hello(); // OUTPUTS: Hello, Dude
Run Code Online (Sandbox Code Playgroud)

如果参数name尚未传递给函数,Dude则将使用默认名称.