JS 逻辑错误

JS Logical Insanity

这段代码returnsmin,这怎么可能?

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

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

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

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