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”。
这段代码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”。