<p>局部变量计数。</p>
<button type="button" onclick="myFunction()">计数!</button>
<p id="demo">0</p>
<script>
function add() {
var counter = 0;
return counter += 1;
}
function myFunction(){
document.getElementById("demo").innerHTML = add();
}
</script>
如果把上面的 var counter = 0;改成counter = 0;为什么它不会一直递增?不是说不使用var关键字,它就是一个全局变量吗?
去掉var后是会变成一个全局的。但是在这个例子中,每次进入add方法时你又赋值了一次0,所以表现上来看是不会递增的。
这个全局的意义在于可以在其他地方也能访问到这个counter。
还有任何不懂的可以加我qq 2057388734
把 var counter = 0; 挪到函数外面去就行
全局是指的在函数外部也能访问到这个变量,在函数内部,你每次调用的时候,都重新赋值了,当然不会一直递增鸭;不要写这种让人迷惑的代码,就在外部定义一个全局变量,或者不定义变量,每次取 id="demo"的文本,转成int值,再去累计并重新赋值。
你问的问题 跟你现在的代码 是同一个问题 。 每次add都重新赋值了;
把counter放到外面。