我正在阅读一些javascript代码,我看到了很多看起来像这样的代码:
processMethod = processMethod || function(){};
它通常位于函数内部。我相信这是一个速记代码,但我不确定它的作用。
它是否检查 processMethod 是否有值,以及它是否没有将其声明为以后可以定义的函数?
用词来说:
if there is no processMethod, create it empty.
||
与布尔值一起使用,因此它会检查第一个操作数processMethod
是否具有布尔等价值。如果定义了 processMethod 且不为 null,则布尔等价物为true
。如果 processMethod 未定义或 null,则布尔等价值为false
。在 false-case 中,||
寻找第二个操作数的布尔等价物,它不为空,因此它的布尔等价物是true
。
false || true
解析为true
,因此过程方法变得function(){}
。
顺便说一句,function(){}
是一个空函数,它曾经不会在processMethod()
上抛出错误
它本质上检查它是否存在。如果不存在,请分配它。
function doSomething(o) {
o = o || {};
}
在上述情况下,它检查是否传递了o
的值。如果不是,则为其分配一个空对象。