JS Logical Insanity

时间:2017-07-27 20:08:28

标签: javascript logical-operators google-sheets-api

此代码返回min,这怎么可能?

if(prices[i] == 1000 && min == 53){
  if(prices[i] < min){
    return min;
  }
  return prices[i];
}

2 个答案:

答案 0 :(得分:5)

值是字符串。当您使用==将它们与数字进行比较时,数字首先(内部)转换为字符串。但是,<将两个字符串比较为字符串,因此字符串“1000”实际上小于字符串“53”,因为“1”位于“5”之前在字符集中。

答案 1 :(得分:3)

比较字符串而不是数字时会发生有趣的事情

console.log("strings", "1000" < "53")
console.log("numbers", 1000 < 53)