gpt4 book ai didi

javascript - 为什么 increment using++ 与 javascript 中的字符串一起使用?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:03:43 24 4
gpt4 key购买 nike

通常,当我使用 jQuery 获取表单输入的值时,我必须在执行任何数学运算之前将其转换为数字。比如使用一元加运算符进行转换,然后自增:

var x = +$(this).val();
x += 1;

但由于某些原因 ++ 可以处理字符串并自动进行转换:

var x = $(this).val();
x++;

http://jsfiddle.net/m4nka9d3/

为什么?这总是安全的吗?

最佳答案

它之所以这样工作,是因为任一递增运算符所做的第一件事就是将其操作数强制转换为一个数字,这在 §11.3.1 of the spec 中。 .在规范中,是的,这是您可以信赖的东西。

跳过一些spectalk,算法是:

  • oldValueToNumber(GetValue(lhs)) .
  • newValue是添加值 1 的结果至 oldValue ,使用与 + 相同的规则运算符(operator)(见 11.6.3)。
  • 调用PutValue(lhs, newValue) .
  • 返回oldValue .

然而,+=定义 quite differently将数字强制转换为早期步骤,因此最终应用字符串连接而不是加法。

关于javascript - 为什么 increment using++ 与 javascript 中的字符串一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29853262/

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