在js中将字符串化整数添加到十进制的意外行为

yge*_*her 1 javascript

我有一个奇怪的错误,我刚刚在我的代码中找到了源代码.

"1" + .88 // 10.88
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

Den*_*ret 8

添加数字和字符串(无论其顺序如何)时,数字将转换为字符串,然后将两者连接起来.

.88.toString()
Run Code Online (Sandbox Code Playgroud)

"0.88"
Run Code Online (Sandbox Code Playgroud)

所以你得到了字符串

"10.88"
Run Code Online (Sandbox Code Playgroud)

显示为

10.88
Run Code Online (Sandbox Code Playgroud)

在大多数情况下(例如在HTML输入中).


如果你想有一个规范为基础的分析,它开始在这里

在此输入图像描述

然后在这里0.描述带前导的字符串转换数字: 在此输入图像描述 (s = 88,k = 2,n = 0)

  • @JurijJazdanov不是,'0'来自`.88`. (4认同)