首页 > 解决方案 > 为什么输出是 01122?

问题描述

如果我们在 Javascript 中连接字符串和整数,则输出必须是字符串部分,然后其他数字也将打印为字符串,但在此它打印零,然后将数字计为整数而不是字符串并得出总和。

这里发生了什么?

var x = document.getElementById("1");
x.innerHTML += 1111 + 11;
<p id="1">0</p>

我希望的输出0112201111111122

标签: javascripthtml

解决方案


您将 1111 和 11 (=1122) 的总和连接到一个字符串。

Javascript 将首先计算总和,然后将其转换为字符串以进行连接,因为您要求将其添加到字符串 ( +=) 的末尾。

如果你想得到0111111

x.innerHTML += '' + 1111 + 11;

如果你想得到1122

x.innerHTML = +x.innerHTML + 1111 + 11;

推荐阅读