为什么0:0被忽略为运算符?

时间:2015-07-08 14:09:01

标签: javascript operators calculator colon

我正在使用这个名为Webform Calculator的Drupal模块,它使我们成为所谓的运算符。

基于运营商的一个公式几乎完成工作:

({total_weight}==0? 0:0) || ({total_weight}<=2? 5:0) || ({total_weight}<=10? 6:0) || ({total_weight}<=30? 10.5:0) 

这就是它正确的做法:

  • 如果总重量等于或小于2,请使用5
  • 如果总重量等于或小于10,请使用6
  • 如果总重量等于或小于30,请使用5
  • 如果总重量超过30,请使用0

唯一没有解决的问题(实际上是公式的第一部分):

  • 如果总重量等于0,请使用0

它一直向我投掷5。任何人都知道我出错了什么,以及这首先被称为什么(很难在Google上找到引用)?

1 个答案:

答案 0 :(得分:0)

({total_weight}==0? 0:0) || ({total_weight}<=2? 5:0) || ({total_weight}<=10? 6:0) || ({total_weight}<=30? 10.5:0)

如果total_weight为0,则可以将其解释为:

(0 || ({total_weight}<=2? 5:0) || ({total_weight}<=10? 6:0) || ({total_weight}<=30? 10.5:0)

  (false || ({total_weight}<=2? 5:0) || ({total_weight}<=10? 6:0) || ({total_weight}<=30? 10.5:0)

导致第二个条件执行。 0<=2所以三元“返回”5