Javascript(+)符号连接而不是给出变量的总和为什么当我使用它:(假设i = 1)divID = "question-" + i+1;我得到问题11而不是问题2?
3 回答
明月笑刀无情
TA贡献1828条经验 获得超4个赞
请改用:
var divID = "question-" + (i+1)
这是一个相当普遍的问题,并不仅仅发生在JavaScript中。这个想法是,+
可以代表两个串联和补充。
由于+运算符将从左到右处理,因此代码中的决策如下所示:
"question-" + i
:既然"question-"
是一个字符串,我们将进行连接,从而产生"question-1"
"question-1" + 1
:既然"queston-1"
是一个字符串,我们将进行连接,从而产生"question-11"
。
随着"question-" + (i+1)
它的不同:
由于
(i+1)
它在括号中,因此必须在第一个+
应用之前计算其值:i
是数字,1
是数字,所以我们将做加法,结果2
"question-" + 2
:既然"question-"
是一个字符串,我们将进行连接,从而产生"question-2"
。
九州编程
TA贡献1785条经验 获得超4个赞
仅限使用:
divID = "question-" + parseInt(i) + 1;
当“n”来自html输入字段或声明为字符串时,您需要使用显式转换。
var n = "1"; //type is stringvar frstCol = 5;lstCol = frstCol + parseInt(n);
如果“n”是整数,则不需要转换。
n = 1; //type is intvar frstCol = 5, lstCol = frstCol + n;
添加回答
举报
0/150
提交
取消