前提:在日常开发中,我们有时候会遇到数字比较的问题,比如小于等于某个数,大于等于某个数。
let str = '500'
if(str > 1000)
{
return true
}
上述这段代码是会返回true的。但是常识是500不是比1000小吗????
解释:
字符串类型的数字比较大小是从第一位开始比较其在字符编码中对应的数值大小,相等则继续比较第二位,不相等就是数值大的为大。
打印字符串ASCII码可以使用charCodeAt
这里,1的编码小于5,所以'500'>1000
。
所以下次我们进行比较时一定要将字符串数字转为数字再进行比较。
如:在字符串前加个+
号,这是我最喜欢的字符串数字转数字的方法,相当于Number
。