为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这么写只显示一个值,不显示其他的值呢

		var mychar=prompt("初始值");
		while(mychar<=7)
		{
			document.write(mychar);
			mychar=mychar+1;
		}
	


正在回答

3 回答

因为通过弹框输入的值是字符串,字符串+数字,结果也是字符串,比如你输入1,输出1,最后的值变成了字符串的11,然后字符串和数字比较,先把字符串转换为数字,也就是说原来的字符串“11”变成了数字11,11>7,所以循环不执行。直接就跳出循环了。如果想要输出的话很多数字的话,把mychar=mychar+1; 这一句改成mychar=parseInt(mychar)+1; 就可以了

1 回复 有任何疑惑可以回复我~
#1

司禄德 提问者

原来是这样,一开始我是while(mychar<=7)把这里的mychar加上parseInt的。。谢谢了
2016-07-11 回复 有任何疑惑可以回复我~
#2

CharlesLvm 回复 司禄德 提问者

不就应该在最开始就开始解析吗,不然第一次字符串和数字怎么比较?
2016-07-12 回复 有任何疑惑可以回复我~

var mychar=prompt("初始值");

输出mychar

"7" //mychar为字符串

mychar <= 7

true //因为类型转换之后会相等,但是

mychar + 1

“71”

所以只会执行一遍


0 回复 有任何疑惑可以回复我~
#1

司禄德 提问者

谢谢啦~
2016-07-11 回复 有任何疑惑可以回复我~

mychar返回的是一个字符串,就像楼上说的,先使用parseInt()函数解析字符串,并返回一个整数,就可以达到楼主想要的结果了

0 回复 有任何疑惑可以回复我~
#1

司禄德 提问者

谢谢啦~
2016-07-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么这么写只显示一个值,不显示其他的值呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信