用js编写一个从1-n(n>1)的函数,除以3和5的偶数,且每行6个自动换行下面是我写的代码

错误输出形式function aa(n){for(var i=1;i<=n;i++){var k=0;if(i%2==0&&i%3==0&&i%5==0){document.write(i+" ");k++;if(k%6==0){document.write("<br/>");}} }}aa(1000);</script>正确输出形式<script type="text/javascript">function aa(n){var k=0;for(var i=1;i<=n;i++){if(i%2==0&&i%3==0&&i%5==0){document.write(i+" ");k++;if(k%6==0){document.write("<br/>");}} }}aa(1000);</script>为什么 var k=0,放在函数内部第一行或者函数外面输出都是对的,放在循环里面就不对呢?
2026年09月24日 21:10
有1个网友回答
网友(1):

因为变量有作用域 你在外面定义变量 在循环内使用 变量没有出作用域 使用可以正常累计
你在循环里定义变量 虽然变量都只是在循环里用 但是 你每次循环里var 等于重新定义一个新变量 原先定义的变量值被新的变量覆盖了