'undefined'变量变成数字的 JavaScript 行为真的很奇怪吗?



所以。。。我最初试图创建我自己的去抖动函数,但现在让我们把它放在一边,因为我有一个全新的问题(我认为(

下面的代码将呈现随机数,我不知道为什么。有人能解释一下这里发生了什么吗?

<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

相关内容

  • 没有找到相关文章

最新更新