所以。。。我最初试图创建我自己的去抖动函数,但现在让我们把它放在一边,因为我有一个全新的问题(我认为(
下面的代码将呈现随机数,我不知道为什么。有人能解释一下这里发生了什么吗?
<body>
<button id='butto'>Click</button>
<script>
let buttonz = document.querySelector('#butto');
buttonz.addEventListener('click',function(){
let aaa;
console.log(aaa); //outputs 'undefined' - expected
if (aaa){
clearTimeout(aaa);
console.log(aaa);
}
aaa = setTimeout(()=>{
console.log('clicked');
aaa = undefined;
console.log(aaa); //outputs 'undefined' - expected
}, 2000);
console.log(aaa); // outputs 'random number' - ????????????????
console.log(typeof aaa); // outputs 'Number' - ????????????????
});
</script>
</body>
您得到一个数字是因为这一行:
aaa = setTimeout(...)
setTimeout返回一个数字。请参阅文档:https://www.w3schools.com/jsref/met_win_settimeout.asp