javascript中for循环和标签元素赋值问题总结

<!DOCTYPE html>
<html>
<body>
<p>点击下面的按钮,将代码块循环五次:</p>
<button onclick="myFunction()">点击这里</button>
<p id="demo"></p>
<script>
function myFunction()
{
var x="";
for (var i=0;i<5;i++)
{
x=x + "The number is " + i + "<br>";
document.getElementById("demo").innerHTML=x;
}
}
</script>
</body>
</html>

<!DOCTYPE html>
<html>
<body>
<p>点击下面的按钮,将代码块循环五次:</p>
<button onclick="myFunction()">点击这里</button>
<p id="demo"></p>
<script>
function myFunction()
{
var x="";
for (var i=0;i<5;i++)
{
x=x + "The number is " + i + "<br>";
}
document.getElementById("demo").innerHTML=x;
}
</script>
</body>
</html>

上面两段代码是来自w3school中的一个关于for循环和标签元素赋值的问题的例子,我是之前一直纠结于将document.getElementById("demo").innerHTML=x;放在for循环内外结果为什么一样?

放在外边的情况很好理解,无非是p标签输出了循环到最后的x的结果,即:

The number is 0
The number is 1
The number is 2
The number is 3
The number is 4

而放在里面的情况,我之前一直认为是每循环一次p标签输出一次x的结果,即:

The number is 0
The number is 0
The number is 1
The number is 0
The number is 1
The number is 2
The number is 0
The number is 1
The number is 2
The number is 3
The number is 0
The number is 1
The number is 2
The number is 3
The number is 4

但这样的想法是错误的,因为p标签是闪现了5次输出的结果,最后显示的是最终输出的x结果,而不是把每次的值都显示出来,即:

The number is 0
The number is 1
The number is 2
The number is 3
The number is 4
---------------------

原文地址:https://www.cnblogs.com/newcapecjmc/p/11081818.html

时间: 2024-10-02 09:56:29

javascript中for循环和标签元素赋值问题总结的相关文章

javascript中通过className灵活查找元素 例如我们要把根据class来进行修改样式

原文:javascript中通过className灵活查找元素 例如我们要把根据class来进行修改样式 一.背景:一个表单中,要修改一些li中有class=box的样式,将它的background设置为red红色.一般的做法是我们可以先找到父级元素 ,然后由父级元素找到所有相关tagName,最后,来一个if判断,如果class属性为box,则修改之 var oUl = document.getElementById("ul1");                          

javascript中变量声明要早于赋值

javascript中变量声明要早于赋值:这里只做简单的现象介绍,具体不做深究,先看一段代码实例: var webName="蚂蚁部落"; document.write(webName); 对于这段代码应该没有任何问题,输出结果是:蚂蚁部落.再来看一段代码: document.write(webName); var webName="蚂蚁部落"; 按照代码是顺序执行的理论,以上代码应该会报错才对,但是这里输出结果却是:undefined.这说明在执行输出之前,变量已

Javascript中的循环

Javascript中有两种循环的方法for循环和for-in循环 for循环主要用来循环数组,for-in循环应该用来遍历非数组对象.从技术上来说,for-in循环也可以用来遍历数组(JS中数组也是对象),但这样做并不是很好,当该数组被自定义函数扩大后,有可能导致逻辑上的错. for循环的常规写法 for(var i = 0; i < myarray.length; i++){ //对myarray[i]进行操作 } 在常规写法中,每次循环时都要重新访问计算数组的长度,将会导致代码运行速度下降

JavaScript 中 for 循环

在ECMAScript5(简称 ES5)中,有三种 for 循环,分别是: 简单for循环 for-in forEach 在2015年6月份发布的ECMAScript6(简称 ES6)中,新增了一种循环,是: for-of 下面我们就来看看这 4 种 for 循环. 简单 for 循环 下面先来看看大家最常见的一种写法: 1 2 3 4 const arr = [1, 2, 3]; for(let i = 0; i < arr.length; i++) {     console.log(arr

JavaScript基础Javascript中的循环

1.普通循环JavaScript中一般的循环写法是这样的: // sub-optimal loop for (var i = 0; i < myarray.length; i++) { // do something with myarray[i] } 这种写法的问题是,每循环一次,都需要从myarray对象中读取length属性,这对于JavaScript来说,可能会导致较大的性能问题.如果myarray是一些大型的对象,或是DOM对象更犹是如此,因为DOM对象的这些方法都是在执行时才进行查询

Javascript中的循环变量声明,到底应该放在哪儿?

不放走任何一个细节.相信很多Javascript开发者都在声明循环变量时犹豫过var i到底应该放在哪里:放在不同的位置会对程序的运行产生怎样的影响?哪一种方式符合Javascript的语言规范?哪一种方式和ecma标准未来的发展方向匹配?本文将对四种常见的声明循环变量的书写方式进行简单的分析和比较. 习惯1:不声明直接使用 function loop(arr) { for (i = 0; i < arr.length; i++) { // do something } } 非常危险的使用习惯,

我在学JavaScript中的循环

for (var num1 = 1;num1 < 10;num1++ ){ for (var num2 = 1;num2< 10;num2++ ){ console.log(num1+'*'+num2+'='+num1*num2) }console.log("<br>")} TODO 问题一:为什么会换行TODO 在测试过程中我发现在控制台每九次会加一个brTODO 这是在控制台 如果我让他在body中TODO 因为在HTML中br是换行标签浏览器不会放在内容中

javascript中各种循环总结

我们如何遍历数组中的元素?20年前JavaScript刚萌生时,你可能这样实现数组遍历: 1 var arr=["one","two","three"]; 2 for(var i=0;i<arr.length;i++){ 3 document.write(arr[i]); 4 }   自ES5正式发布后,你可以使用内建的forEach方法来遍历数组: myArray.forEach(function (value) { console.lo

JavaScript中的window对象的属性和方法;JavaScript中如何选取文档元素

一.window对象的属性和方法 ①setTimeout()方法用来实现一个函数在指定毫秒之后运行,该方法返回一个值,这个值可以传递给clearTimeout()用于取消这个函数的执行. ②setInterval()用来实现一个在指定毫毛数的时间里重复调用,返回一个值,这               个值可以传递给clearInterval()用于取消后续函数的调用. ③Document对象的location属性也引用到Location对象: window.location === docume