我想知道更长的时间,以下是什么意思:
var a = a || { b : 1 }
Run Code Online (Sandbox Code Playgroud)
如果'a'之前分配了任何属性......他们会消失.那么上面语法的目的是什么?
我喜欢这种语法.在我看来,它非常优雅.
解释相当简单.你在这里有一个使用||(或)运算符的条件表达式.这将根据条件的结果为变量赋值.
在这种情况下,条件是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则将使用默认名称.
| 归档时间: |
|
| 查看次数: |
3134 次 |
| 最近记录: |