【问题标题】:Ternary operator not working properly in JS [duplicate]三元运算符在JS中无法正常工作[重复]
【发布时间】:2020-02-27 16:59:54
【问题描述】:

我正在运行以下代码并得到意想不到的结果:

var a = 1, b =2 ,c = 3;
console.log(5*a+ b>0?b:c);
预期结果是:7 但得到 2。

【问题讨论】:

  • 为什么是react-native 标签?
  • 这是因为它正在返回b。您应该使用括号来分隔三元
  • 你为什么期待7
  • 您的条件是5 * 1 + 2 > 0。如果这是真的(确实如此),则返回 b (2)。按编码工作。
  • 请注意,JavaScript 并不关心您将空格放在您所做的位置 - 空格对运算符优先级没有任何作用,只有运算符和括号可以。

标签: javascript ternary-operator ternary


【解决方案1】:

您的代码概念正确,但执行错误。三元组正在正常工作。

目前,您的代码执行如下:

const a = 1
const b = 2
const c = 3

// This will evaluate to true, since 5 * 1 + 2 = 7, and 7 is greater than 0
if (5 * a + b > 0) { 
  // So return b
  console.log(b)
} else {
  console.log(c)
}

你应该使用括号来分隔三元:

const a = 1
const b = 2
const c = 3

console.log(5 * a + (b > 0 ? b : c));

【讨论】:

    猜你喜欢
    • 2021-02-06
    • 2019-08-09
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    • 2020-09-16
    • 2021-09-25
    • 1970-01-01
    相关资源
    最近更新 更多