JavaScript字符串/整数比较我将客户端的一些参数存储在HTML中,然后需要将它们作为整数进行比较。不幸的是,我遇到了一个严重的错误,我无法解释。错误似乎是,我的JS将参数读入字符串而不是整数,导致我的整数比较失败。我已经生成了一个小的错误例子,我也无法解释。运行时,以下内容返回“true”:javascript:alert("2">"10")
4 回答
明月笑刀无情
TA贡献1828条经验 获得超4个赞
'00100' < '1' // true
'00100' < 1 // false
function isInt(n) {
return /^[+-]?\d+$/.test(n);}var isInt = (function() {
var re = /^[+-]?\d+$/;
return function(n) {
return re.test(n);
}}());var isInt = (function() {
var re = /^[+-]?\d+$/;
var re2 = /\.0+$/;
return function(n) {
return re.test((''+ n).replace(re2,''));
}}());parseInt(2.9) == parseInt('002',10) == parseInt('2wewe')if (isInt(a) && isInt(b)) {
if (+a < +b) {
// a and b are integers and a is less than b
}}Number(a); // liked by some because it's clear what is happening a * 1 // Not really obvious but it works, I don't like it
江户川乱折腾
TA贡献1851条经验 获得超5个赞
将数字与字符串等效项进行比较,而不使用 parseInt
console.log(Number('2') > Number('10'));console.log( ('2'/1) > ('10'/1) );var item = { id: 998 }, id = '998';var isEqual = (item.id.toString() === id.toString());isEqual;添加回答
举报
0/150
提交
取消
