在javascript中,字符串和整数之间的比较是如何工作的

How does comparison between a string a an integer work in javascript?

本文关键字:何工作 工作 比较 字符串 之间 整数 javascript      更新时间:2023-09-26

我刚刚发现一段代码,其中将字符串与整数进行比较,如下所示:

var result = "text" > 127;

并且这一行代码的结果是错误的。我还试图将其更改为等于或小于,但结果仍然是错误的:

var result = "text" === 127;
var result = "text" < 127;

如果字符串和这样的数字总是返回false,或者在任何情况下都是true,那么比较字符串和数字有什么意义?

当您将字符串与数字进行比较时,字符串会转换为数字,但在本例中为"text",结果为NaN(translate不是数字)。结果总是false,因为NaN不是一个可比较的数字。

验证:

var n1 = Number("text");
console.log(n1); //show NaN

所以。。。

var result = "text" > 127;

Is等于

var result = NaN > 127; //result false always with any compare

但是,如果文本是一个数字,可以转换

var result = "00999" > 127; //result true, because Number("00999") == 999