当前位置: 首页 > 面试题库 >

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

田向荣
2023-03-14
问题内容

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

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

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


问题答案:

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

它是写作的简写:

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

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

a OR b

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

var title = title || "Error";

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



 类似资料:
  • 问题内容: 考虑以下示例: 我不确定Java语言规范中是否有一项规定要加载变量的先前值以便与右侧()进行比较,该变量应按照方括号内的顺序进行计算。 为什么第一个表达式求值,而第二个表达式求值?我本来希望先被评估,然后再与自身()比较并返回。 这个问题与Java表达式中子表达式的求值顺序不同,因为这里绝对不是“子表达式”。需要 加载 它以进行比较,而不是对其进行“评估”。这个问题是特定于Java的,

  • 这个问题与Java表达式中子表达式的求值顺序不同,因为在这里肯定不是“子表达式”。需要加载它进行比较,而不是“求值”。这个问题是特定于Java的,表达式来自一个真实的项目,而不是通常为棘手的面试问题而设计的牵强附会的不切实际的构造。它应该是比较和替换习语的一行替换 它比x86 CMPXCHG指令还要简单,因此在Java中应该使用更短的表达式。

  • 问题内容: 我看到了这个功能: 这是什么?有功能吗?为什么要放置函数定义? 问题答案: 在javascript中,您可以拥有和函数。 与…相同 你称这些为 您可以定义函数并立即将其调用为 的 part定义一个函数,并在其后立即调用刚刚定义的函数,并以10和20作为参数。 由于该函数没有名称,因此无法在以后的代码中使用。 您问题中的代码可能被 缩小了 ,并以类似的方式创建了一个函数并立即调用它。

  • 我是XAML的新手。我想知道所有的x:和:x都是关于什么的。关于XAML的教程没有解释这一点(或者我还没有读够)。 例如: 这几行中的x是什么意思? 窗口x:Class=“WpfTutorialSamples.WPF_Application.ResourceSample” xmlns:x=“http://schemas.microsoft.com/winfx/2006/xaml“sys:字符串 x

  • 我注意到写作是完全合法的 但我不清楚它的语义。它实际上做什么?我希望它的意思是“X是一个类的名称,但我们将使用它作为接口”,但我注意到您可以这样写: 这意味着实现X并没有添加它。那么它又增加了什么呢?

  • 问题内容: Python文档明确指出了调用。但是似乎在许多情况下,情况恰恰相反。它何时何地发生的原因在哪里记录,如何确定我的对象或方法将被调用。 编辑:只是为了澄清,我知道在优选中调用,但是我不清楚为什么优先于调用,而后者是文档状态将发生的原因。 编辑:从马克·迪金森的答案和评论中,它看起来像是: 丰富的比较替代 是它自己的,以它的(以及类似的,等等) 如果左对象是内置类或新样式类,而右对象是其子