一尘不染

JavaScript构造x=x | | y是什么意思?

javascript

我正在调试一些JavaScript,无法解释它的||作用?

function (title, msg) {
  var title = title || 'Error';
  var msg   = msg || 'Error on Request';
}

有人可以给我一个提示,为什么这个人正在使用var title = title || 'ERROR'?我有时也看到它而没有var声明。


阅读 459

收藏
2020-04-23

共1个答案

一尘不染

这意味着该title参数是可选的。因此,如果您不带任何参数调用该方法,则它将使用默认值"Error"

它是写作的简写:

if (!title) {
  title = "Error";
}

这种带有布尔表达式的速记技巧在Perl中也很常见。带有表达式:

a OR b

它计算true是否为abtrue。因此,如果a为真,则完全不需要检查b。这称为短路布尔评估,因此:

var title = title || "Error";

基本上检查是否title评估为false。如果是,它将“返回” "Error",否则返回title

2020-04-23