Javascript(+)符号连接而不是给出变量的总和

Javascript(+)符号连接而不是给出变量的总和

为什么当我使用它:(假设i = 1

divID = "question-" + i+1;

我得到问题11而不是问题2


慕尼黑的夜晚无繁华
浏览 523回答 3
3回答

明月笑刀无情

请改用: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"。

跃然一笑

你也可以用这个divID = "question-" + (i*1+1);确保i转换为整数。

九州编程

仅限使用: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;
打开App,查看更多内容
随时随地看视频慕课网APP