jQuery技术:Javascript:带有尾随字符的parseInt()

parseInt("7em", 10); 在我测试的所有浏览器中返回7 [*]。 但我可以依靠这个吗?

我问的原因是,我想基于em执行一些计算,比如

 /* elem1.style.top uses em units */ elem2.style.top = parseInt(elem1.style.top, 10) + 1 + "em"; 

我可以使用正则表达式执行此操作,但parseInt更易于使用,并且可能更快一些。 或者是否有另一种解决方案(也许使用jQuery)?

[*]目前已经过测试:IE 6,IE 8,Safari 4,Firefox 3.6,Opera 10.5

    这是符合标准的行为。 ECMA-262第15.1.2.2节规定

    parseInt只能将字符串的前导部分解释为整数值; 它忽略任何不能被解释为整数表示法的一部分的字符,并且没有给出任何此类字符被忽略的指示。

    我更担心的是,在未来的某个时刻, elem2.style.top的单位会发生变化。 在这种情况下,这段代码可能会将200px变为200em ,这可能会造成很大的混乱。

    是的,你可以依靠这个。 访问https://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%203rd%20edition,%20December%201999.pdf并搜索“15.1.2.2”部分,parseInt

    为什么不采取拯救之路

     parseInt(elem1.style.top.replace(/em/, ""), 10); 

    是。 你可以信赖它。

    parseInt("7em", 10); 将永远返回7,是的。 parseInt()返回字符串中的第一个值。

    是的,parseInt比正则表达式更快更容易使用。

    而且,你应该使用jQuery吗? 好吧,它不会帮助你在这个问题上计算或解析,但确保你的其他代码可能会更容易和更好。

    需要了解更多jQuery教程分享Javascript:带有尾随字符的parseInt(),都可以关注jQuery技术分享栏目—计算机技术网(www.ctvol.com)!

      以上就是jQuery教程分享Javascript:带有尾随字符的parseInt()相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/jquerytutorial/981497.html

      (0)
      上一篇 2021年12月12日
      下一篇 2021年12月12日

      精彩推荐