为了账号安全,请及时绑定邮箱和手机立即绑定

“未定义”变量变成数字的 JavaScript 行为真的很奇怪吗?

“未定义”变量变成数字的 JavaScript 行为真的很奇怪吗?

HUWWW 2022-12-02 17:21:36
所以......我最初试图创建自己的去抖功能,但现在让我们把它放在一边,因为我有一个全新的问题(我认为)。下面的代码将呈现随机数,我不知道为什么。有人可以解释一下这里发生了什么吗?<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>
查看完整描述

1 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

由于这一行,您得到了一个数字:

aaa = setTimeout(...)

setTimeout 返回一个数字。请参阅文档:https ://www.w3schools.com/jsref/met_win_settimeout.asp


查看完整回答
反对 回复 2022-12-02
  • 1 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号