JavaScript比较行为

时间:2014-07-07 12:27:34

标签: javascript

内部JavaScript如何比较?

alert(022 > "21"); // false
alert(22 > "21"); // true
alert("22" > "21"); // true

我正在阅读一篇文章here,看起来第一篇应该是true

2 个答案:

答案 0 :(得分:2)

在JavaScript中,任何以0开头的数字文字都被视为八进制数。所以

console.log(022);
# 18

这就是console.log(022 > "21");评估为false的原因。

如果您想知道如何比较这两个实体,请查看ECMA 5.1 standard specification for The Abstract Relational Comparison Algorithm

答案 1 :(得分:0)

检查字符串是否为整数与比较分开..

请参阅此链接:Javascript string/integer comparisons