gpt4 book ai didi

javascript - jQuery 对 isNumeric 的更改(在最新版本中)?

转载 作者:行者123 更新时间:2023-12-03 21:48:23 25 4
gpt4 key购买 nike

直到最近的版本,jQuery 用于通过以下方式检查数字:

return !isNaN( parseFloat(obj) ) && isFinite( obj );

第一部分用于:

  • parseFloat("d")//Nan
  • !isNaN( parseFloat(Infinity))//true 但不是数字

第二部分用于:

  • isFinite('2')//true

但是在最近的版本中他们改变了它并将其更改为:

return !jQuery.isArray(obj) && (obj - parseFloat(obj) + 1) >= 0;

问题:

上一版本中的哪些地方不够好以至于他们将其更改为新版本?为什么他们要检查数组是否存在?

最佳答案

相同的 obj 值回答了您的两个问题:[3]

!isNaN( parseFloat(obj) ) && isFinite( obj ) 对于 [3]true

(obj - parseFloat(obj) + 1) >= 0 对于 [3]true

这些问题背后的原因是 parseFloat 中发生了向字符串或数字的转换。并在 isFinite数组到字符串的转换是用逗号连接数组元素到字符串的结果。

因此,此更改是一个错误修复。

请注意,您仍然可以使用 {toString:function(){ return 3}} 之类的值使其“失败”,但不清楚在这种情况下 jQuery 应该真正返回什么(这个对象实际上毕竟,希望显示为数字)。

关于javascript - jQuery 对 isNumeric 的更改(在最新版本中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30980010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com