setInterval 和 clearInterval

setInterval and clearInterval

我的代码 returns "Uncaught reference error: y is not defined",因为 var y 是在不同的函数中定义的。 (有一个 html 按钮,按下时调用函数 p)

var x = 0;

function write5() {
   if (x <= 9) {
       document.write(5); 
       x += 1;
   }
  else {
   clearInterval(y);
  }
}
function p() {
  var y = setInterval(write5, 500);
}

但是,如果我将变量放在函数之外,它会立即启动。如何让函数打印 5 10 次,仅在按下按钮时开始并且不返回错误?

在函数外声明"y",像这样:

var x = 0;
var y = null;
function write5() {
   if (x <= 9) {
       document.write(5); 
       x += 1;
   }
  else {
   clearInterval(y);
  }
}
function p() {
  y = setInterval(write5, 500);
}