一道Javascript基础问答题
我有时候会去百度知道javaScript分类逛一逛,因为里面会有很多小伙伴问一些基础题。
我会选择一些我感兴趣的去来回答,因为可以帮助我重温基础。
他的问题是这样的:
谁会javascript啊,下图中划横线的 x+ 是干嘛用的?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <script> function mytest(){ var x = ""; for(var i=0; i<5; i++){ x = x + "Num is" + i + "<br/>"; } document.getElementById("demo").innerHTML = x; } </script> 输出的结果是: Num is 1 Num is 2 Num is 3 . . . 我觉得那个x+没必要加上,但是去掉以后输出结果只有 Num is 4 ......初学js,说多都是泪 |
我选择来回答这道题;
一、这或许是一个新手的疑惑点。
二、看到其他人回复的都比较简单而楼主又在不停追问。
三、这样细致的来分析一个知识点是比较有意思的事情。
我的回复是:
1.首先要明白js按从上往下执行,for循环完毕才会执行document.xxxx.innerHTML = x;
2.先看不要x+的情况,这个很好理解
1
2
3
4
5
6
7
8
9
10
for开始循环
i = 0的时候,x = ”The number is“ + i + ”换行“;
结果:x = The number is 0 + ”换行“;
i = 1的时候, x = ”The number is“ + i + ”换行“;
结果:x = The number is 1 + ”换行“;
以此类推:
i=4的时候,x = ”The number is“ + i + ”换行“;
结果:x = The number is 4;
这个时候循环结束了,x的最终结果是 The number is 4;
所以页面document.xxxx.innerHTML = The number is 4;
3.再看有x+的情况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for开始循环
i=0的时候,x = x + "The number is" + i + "换行" ;
顶部就已经申明了,x为空对不?i 这个时候为0,
结果: x = "" + The number is 0 + ”换行“;
i=1的时候,x = x + "The number is" + i + "换行" ;
这个时候x = "" + The number is 0 + ”换行“ 对不对? i 这个时候为1,
结果:x = ("" + The number is 0 + ”换行“) + The bunber is 1 + ”换行“;
以此类推
i = 4的时候,我都不想写了,x里面被加了一堆
结果:x = ("" + The number is 0 + ”换行“) + (The number is 1 + ”换行“)
+ ( The number is 2 + ”换行“) + ( The number is 3 + ”换行“)
+ (The number is 4 + ”换行“);
这个时候循环结束了,x的最终结果是一堆...
因为有5个换行符,所以有5行,这个时候document.xxxx.innerHTML = x;你想页面应该是什么结果呢
最简单的方法其实在浏览器打个断点,跑起来就会看的很清楚。
一行行打出来是很累的,但能让他明白,自己也是很舒坦的。