thu*_*gsb 11 javascript variables fallback
请有人向我解释这行代码的作用:
var list = calls[ev] || (calls[ev] = {});
Run Code Online (Sandbox Code Playgroud)
我最好的猜测:
它使用calls.xxx的值设置变量"list",其中xxx是变量ev.如果调用[ev]不存在,那么它将其创建为空对象并将该空对象分配给"list".是对的吗?
为什么要使用括号?我在哪里可以找到有关使用||的更多信息 何时设置变量,并在此上下文中使用括号?谢谢!
Ale*_*lov 12
这段代码相当于
var list;
if (calls[ev])
list = calls[ev];
else {
calls[ev] = {};
list = calls[ev];
}
Run Code Online (Sandbox Code Playgroud)
使用该语言的两个功能:
a || b,如果a是true那么b不评估).因此,如果您分配var v = a || b;和a评估可以强制转换的内容true,b则不进行评估.var a = b = c;)括号是避免这种解释的必要条件:
var list = (calls[ev] || calls[ev]) = {};
Run Code Online (Sandbox Code Playgroud)
(这是一个错误).
你的猜测是正确的.这是在JavaScript中声明变量的"默认"值的常用方法.
function foo(bar) {
var bar = bar || 0; //This sets bar to 0 if it's not already set
console.log(bar);
}
Run Code Online (Sandbox Code Playgroud)
这种方法的工作方式是,在JavaScript中,未定义的变量是假的,这意味着在任何布尔比较运算中,它都会计算到false.然后,您可以使用OR运算符组合两个值,它将返回计算结果的第一个值true.
| 归档时间: |
|
| 查看次数: |
11248 次 |
| 最近记录: |