一个很神奇的js问题,9比21大?

我只是一个渣渣
  • 278

第一次输出是正常的(如下图)clipboard.png

第二次就发现9和9.30竟然比21大
clipboard.png
let current = new Date().getHours() +'.'+ new Date().getMinutes();//这个是获取当前小时和分钟。进行比较。

如果你们说转换浮点数,我也试过了。不行。

回复
阅读 3.3k
6 个回答
"9" < "21.00"
false
"10" < "21.00"
true

理想情况,至于为什么会是这样,自己思考一下吧

字符串按照字典式逐个比较大小, 9 < 2 false, 1 < 2 true, 再比如 23 > 21, 2 == 2, 3 > 1 -> true

把拿到的数据parseFloat() 再进行比较

原理上面都说很清楚了,那就给一个奇淫技巧:

if (+$(this).data('start') < +current) {}

明显是由于数据类型导致的!多看看书!

字符串比较的话,"9"确实比"21"大。如果想比较时间,那转成数字比较准确。

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏