我正在调试一些JavaScript,无法解释它的||作用?
||
function (title, msg) { var title = title || 'Error'; var msg = msg || 'Error on Request'; }
有人可以给我一个提示,为什么这个人正在使用var title = title || 'ERROR'?我有时也看到它而没有var声明。
var title = title || 'ERROR'
var
这意味着该title参数是可选的。因此,如果您不带任何参数调用该方法,则它将使用默认值"Error"。
title
"Error"
它是写作的简写:
if (!title) { title = "Error"; }
这种带有布尔表达式的速记技巧在Perl中也很常见。带有表达式:
a OR b
它计算true是否为a或b为true。因此,如果a为真,则完全不需要检查b。这称为短路布尔评估,因此:
true
a
b
var title = title || "Error";
基本上检查是否title评估为false。如果是,它将“返回” "Error",否则返回title。
false