为什么输入的第一个数字1不在数组内?
来源:2-30 编程练习
Ron15
2018-01-13 11:59:20
var arr=[];
var input=prompt("请输入任意字符");;
while(input!=-1){
input=prompt("请输入任意字符");
arr.push(input);
}
arr.pop();
arr.splice(0,1,"hello");
console.log(arr);
4回答
你好,第一个输入的内容没有,理解正确,应为“var input=prompt();这是第一次输入,不在循环内部”。
第二个问题:“input的值都是-1”,因为input是全局变量,所以无论循环内外输入更改的值,都影响input的值,它里面保存最后一次输入的值-1,所以输出结果是-1 。
第三个问题:“一个分号和两个分号”,只是代表该语句结束,不影响input的值。
修改如下:
var input; while(input!=-1){ input=prompt("请输入任意字符"); arr.push(input); } arr.pop(); arr.splice(0,1,"hello"); console.log(arr);
希望解答你的疑惑,动手实践加油!
Ron15
提问者
2018-01-13
还有就是为什么input的值始终是-1??
Ron15
提问者
2018-01-13
两个分号好像不会让input失效啊!亲测一个分号两个分号打印出来input的值都是-1!
Ron15
提问者
2018-01-13
我明白了!我在外部设置了var input=prompt();这是第一次输入,不在循环内部,所以没有push到arr里面,那第一次输入的1就没有push到arr里面!!但是!!!!!求解!!为什么我明明input=prompt();;后面有两个分号,还是生效了?尝试过一个分号和两个分号,都是一样的输出,那又推翻了我的解释?
相似问题