【问题标题】:What does || do in console.log() in javascript?是什么||在javascript中的console.log()中做吗?
【发布时间】:2015-08-13 16:27:33
【问题描述】:

这是 FizzBu​​zz 的解决方案(它打印数字 1 到 100,但打印“Fizz”表示可被 3 整除的数字,“Buzz”表示可被 5 整除的数字,“FizzBu​​zz”表示可被两者整除的数字) .

for (var n = 1; n <= 100; n++) {
    var output = "";
    if (n % 3 == 0)
        output += "Fizz";
    if (n % 5 == 0)
        output += "Buzz";
    console.log(output || n);
}

我不明白||console.log(output || n); 中的工作原理

通常,这样的布尔表达式的计算结果为真或假。

【问题讨论】:

  • 这至少是在短时间内问JS logical operators 的第四个问题。它们不返回布尔值,它们返回操作数。
  • 感谢您的帮助
  • 不客气。此外,! 自然不会返回操作数,它总是返回一个布尔值。

标签: javascript


【解决方案1】:

OR 运算符如果为真则返回左侧,如果为假则返回右侧。同:

var foo = output || n;
console.log(foo);

【讨论】:

    【解决方案2】:

    if 没有输出时,它会打印数字 (n)。这就是|| 在这里所做的;)

    【讨论】:

      【解决方案3】:

      "",空字符串,在 JavaScript 中被认为是“虚假”值。也就是说,当在涉及布尔运算符的表达式中使用时,"" 被视为false。 MDN 在 JavaScript 中有一个 resource on falsy values

      例如,代码 sn -p if ("") console.log("Hello, World!"); 不会产生任何输出,因为 if 语句将其表达式计算为 false

      对于 FizzBu​​zz 的解决方案,如果 output 永远不会附加任何内容,则表达式 output || n 将有效地为 false || n,并且由于 JavaScript 计算布尔运算符的方式,表达式将计算为n.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-23
        • 1970-01-01
        • 2012-02-17
        • 2010-10-05
        • 2011-08-21
        • 2020-09-26
        • 2012-08-31
        • 2011-09-05
        相关资源
        最近更新 更多