【问题标题】:NodeJS double negate ternary operatorNodeJS 双重否定三元运算符
【发布时间】:2019-11-09 08:16:25
【问题描述】:

我在下面显示的 NodeJS 中使用三元运算符

let err = {a: 10, message: 0}
const error = !!err.message ? err.message : err;

但上面的代码显示双重否定的 eslint 错误如何解决?下面的选择和上面的一样

const error = err.message ? err.message : err;

【问题讨论】:

  • 你下面的代码看起来像你应该做的,不需要用条件运算符强制转换为布尔值,使用时是否出错?
  • 0 已经是假的了,不需要!!

标签: javascript node.js object ecmascript-6 ternary-operator


【解决方案1】:

实际上不需要使用!! - 这个代码就是你想要的:

const error = err.message ? err.message : err;

如果您真的想检查布尔值而不是纯值:

const error = Boolean(err.message) ? err.message : err;

还请注意,您正在做的事情 - 如果 err.message 是真的,使用它,或者使用 err - 是逻辑 OR 运算符 || 的确切用例:

const err = err.message || err;

【讨论】:

    【解决方案2】:

    如果您愿意,您可以完全避免使用条件运算符 - 如果 err.message 是错误的,只需替换为 err

    const error = err.message || err;
    

    【讨论】:

      猜你喜欢
      • 2019-02-10
      • 2021-11-03
      • 2021-10-06
      • 1970-01-01
      • 2017-03-09
      • 2019-07-14
      • 2011-05-05
      • 2014-09-29
      • 1970-01-01
      相关资源
      最近更新 更多