String JS-字符串和int变量之间的混淆
Javascript真的让我头疼。起初我使用的代码是:String JS-字符串和int变量之间的混淆,string,variables,int,String,Variables,Int,Javascript真的让我头疼。起初我使用的代码是: var val = document.getElementById("inputField").value; // User entered "2" while (val < 5) { val += 1 alert(val); } var val=document.getElementById(“inputField”).value;//用户输入“2” while(val
var val = document.getElementById("inputField").value; // User entered "2"
while (val < 5)
{
val += 1
alert(val);
}
var val=document.getElementById(“inputField”).value;//用户输入“2”
while(val<5)
{
val+=1
警报(val);
}
但是它会做5+1=51,除非我在进入while循环之前使用parseInt。这意味着val不是一个数字。但是,在表达式(val<5)中,当进入while循环时,将val视为一个数字是没有问题的。
为什么会这样?这在我看来是不合逻辑的,除非你告诉我“事情就是这样”。
Ty在编程界很明显,
var x=5
不同于var x=“5”
前者将5理解为一个数字,而后者将5理解为一个字符或一个字符的字符串
这里的问题来自两个方面
第一名:
数值是从html控件输入中获取的,该输入在其value属性中接受文本(即使它是number类型)
第二名:
“+”运算符同时接受数字和文本操作数。其中5+1
结果为6。而“5”+“1”
的结果是“51”。
另外,“5”+1
会导致“51”
所以,javascript认为输入的值是一个有效的文本和数字,加上这两种类型的操作,所以,它将其作为文本处理,因为没有其他符号指示它是一个数字
如果将“+”替换为不接受文本作为操作数的“*”,将得到预期结果,其中“5”*5=25
在这里,jS尝试将乘法作为一个数字应用于文本,但成功了
但是如果文本不是帕萨普式的数字。说“x”,然后
“x”*5
将产生NaN
我建议您使用jquery。。。。