【问题标题】:How boolean condition works in javascript?布尔条件如何在 javascript 中工作?
【发布时间】:2013-12-20 05:31:11
【问题描述】:

我正在我的程序上创建相同的 if else 函数。我想让它更简短,但逻辑相同。

if(!checkStringInput("Test", 14)){
     elementHasError($element);
} else {
     elementIsOk($element);
}

我认为这个布尔条件可以更短:

CONDITION ? FUNCTION1; : FUNCTION2;

感谢您的帮助!

【问题讨论】:

  • 当代码变得不那么可读(可维护)时,为什么要缩短它?
  • @edHeal - 很抱歉。但是整个代码总是在使用。对我来说,这有点乱,如果在我的代码上调用 10 次,我想要更简短的内容。

标签: javascript boolean conditional-statements


【解决方案1】:

你试过了吗

!checkStringInput("Test", 14)) ? elementHasError($element) : elementIsOk($element);

【讨论】:

  • 谢谢!我在使用这个逻辑时做错了。我有 ';'在这两个功能上。谢谢你提供信息。现在它可以工作了。
  • 很高兴能提供帮助,即使它有点小 ;)
【解决方案2】:

可能是最短的:

(checkStringInput("Test", 14) ? elementIsOk : elementHasError)($element);

【讨论】:

  • 嗯,你可以省略一些空格 :-) 实际上这看起来 干净,+1!
  • 我喜欢这种方法,但是当需要在某些上下文中调用处理程序时,它可能会导致问题。例如:(checkStringInput("Test", 14) ? this.elementIsOk : this.elementHasError)($element); 在这种情况下,conetxt 会丢失。 OP 也可以使用它,因为他不需要方法中的任何上下文。
  • @blunderboy (checkStringInput("Test", 14) ? elementIsOk : elementHasError).call(this, $element);
  • @Purrfection 我知道有更多的选择(如绑定)。我只是想向读者说明一点。无论如何谢谢:)
【解决方案3】:
!checkStringInput("Test", 14)? elementHasError($element): elementIsOk($element);

【讨论】:

    【解决方案4】:

    你似乎说对了。您是否在寻找三元运算之外的其他东西?

    !checkStringInput('Test', 14) ? elementHasError($element) : elementIsOk($element);

    【讨论】:

      猜你喜欢
      • 2013-09-23
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      • 2014-03-23
      • 2018-06-16
      • 2011-04-24
      • 1970-01-01
      相关资源
      最近更新 更多