今天项目遇到一个问题,js的字符串想要进行数字大小的比较,这里看似很简单,实际上有一个小陷阱在里面,写出来记录一下。
例如
数字字符串比较如下:
- = '10000000'
- = '5000000'
a>b输出false a-b>0输出true
为什么是这个结果
js中的隐式转换
这是JavaScript中隐式转换的关系,首先在比较的时候,二者是按照string的形式进行比较的,那么比较第一位的时候,1 < 5,直接返回false,而 a - b会把两个数转成number类型进行比较,转换完之后输出就是true。