当你在React组件中写useEffect时,是否遇到过状态更新后获取旧值的诡异情况?当你用for循环绑定事件监听器,却发现所有按钮点击都返回最后一个索引?这些bug的背后,都藏着同一个核心概念——闭包。今天我们就来揭开这个让无数开发者头疼,却又不得不掌握的JavaScript特性。
2025年09月24日
当你在React组件中写useEffect时,是否遇到过状态更新后获取旧值的诡异情况?当你用for循环绑定事件监听器,却发现所有按钮点击都返回最后一个索引?这些bug的背后,都藏着同一个核心概念——闭包。今天我们就来揭开这个让无数开发者头疼,却又不得不掌握的JavaScript特性。
2025年09月24日
好的 你问的是 JavaScript 异步解决方案以及实现原理,我给你整理一个比较系统的总结,包括常见方案、演进过程以及底层原理。
JavaScript 是 单线程 的(浏览器中主线程:渲染 + JS 共享一个线程)。
2025年09月24日
Chrome浏览器更省电了
Chrome凭借着快速的网页加载速度和丰富的扩展插件,一直是网上冲浪选手的首选浏览器之一。除了好用之外,Chrome也是知名的内存吞噬者和耗电大户,之前就有过网友抱怨使用Chrome浏览器耗电严重导致笔记本续航大幅缩水的问题。
最近,Chrome的开发人员正在尝试通过限制后台标签的Javascript计时器唤醒次数来减少电量消耗。大家一般在浏览网页时往往都会打开多个标签页,但大多数时候我们只会浏览其中的一个网页,Chrome为了保证性能,哪怕是在后台的标签页面也会处于活跃状态。如果正好你的Chrome还装有不少的插件,频繁唤醒的Javascript就会带来不小的耗电,严重影响笔记本等移动设备续航。
2025年09月24日
setTimeout与setInterval是JavaScript引擎提供的两个定时器方法,分别用于函数的延时执行和循环调用。前者的主要思想是通过一个定时器,让函数在计时结束后再执行;后者则是每隔一定的时间,就启动一次函数的执行。
从原理来看,两者似乎并不复杂。但由于JavaScript引擎是单线程的,这就让上述两个定时器的实际执行变得稍微复杂了一些。下面我们来看一下两者的运行机制与需要注意的问题。
2025年09月24日
彦祖们,前端开发中对于 setTimeout setInterval 一定用得烂熟于心了吧?
但你知道你的定时器并没那么靠谱吗?
本文涉及技术栈(非必要)
2025年09月24日
在nodejs中,通过setTimeout函数可以达到延迟执行的效果,这个函数也常被称为定时器。
一个简单的例子:
console.log( (new Date()).getSeconds() ); setTimeout(function(){ console.log( (new Date()).getSeconds() ); console.log("hello world"); //延迟一秒执行 },1000);
2025年09月24日
关于定时器setInterval(code, millisecond)和延时器setTimeout(code, millisecond)中第一个参数引号问题思考
对于自定义函数使用双引号必须加上括号;
setInterval("start()", 1000);
setTimeout("start()", 1000);