打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
带<br/>换行符的赋值

今天一下午因为一个带<br/>换行符的赋值给搞蒙圈了,折腾了半天才恍然大悟!

菜鸟起飞的第N天,今天把js基础知识又看了一遍,发现自己的知识体系都是bug!

废话不多说了,直接来记录下今天的总结:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>点击下面的按钮来执行循环,该循环会跳过 i=3 的步进。</p>
  5. <button onclick="myFunction()">点击这里</button>
  6. <p id="demo"></p>
  7. <script>
  8. function myFunction()
  9. {
  10. var x="",i=0;
  11. for (i=0;i<10;i++)
  12. {
  13. if (i==3)
  14. {
  15. break;
  16. }
  17. x=x + "The number is " + i + "<br>";
  18. }
  19. document.getElementById("demo").innerHTML=x;
  20. }
  21. </script>
  22. </body>
  23. </html>

以上这段代码本来是学习break的用法的,然而我却发现了其他的问题:

以下是这段代码的正确输出结果:


而我原本的理解是输出结果应该为:

The number is 0
The number is 0The number is 1
The number is 0The number is 1The number is 2

然而明显这是错误的理解!

首先,document.getElementById("demo").innerHTML=x; 这个输出结果是在循环体外的,所以他只输出最后一次循环结果,其次,就算把他放到循环体内部,前两次输出结果也会被覆盖。为什么呢?因为这个是获取的id元素,一个id元素只能对应一个值。

另外,我将document.getElementById("demo").innerHTML=x;换成了  document.write(x);试了一下,放在循环体外除了一个是打印到相应获取的标签内一个是输出到整个网页上,其他循环输出的结果是一样的,但是如果把document.write(x);放到循环体内,那么结果就不一样了,以下是代码验证结果:


然后我就开始使用console.log  把循环执行的结果一步步打出来看看,结果发现我真的是愚蠢坏了!


好了,因为这次的愚蠢让我记住了教训,下次一定要善用console.log调试工具。希望以后不会再犯同样的错误

!!!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
JavaScript Number 对象的实际操作
Day1-JS-JavaScript 字符串
一篇文章带你了解JavaScript布尔值
innerHTML用法
一个页面中两个div,左边是链接文字,右边是显示内容
DIV的图片无缝滚动
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服