![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js基础
somnus_somnus
这个作者很懒,什么都没留下…
展开
-
var 变量提升和let、const
然后再执行函数里面,第一个log此时是undefined//如果函数内部的var 变为let,则不会有这样的问题,let不能变量提升。在test()函数执行时,首先进行的是预编译,看到var b = 123;//这样时可以的,因为这里的abc是一个引用你类型,在修改name时并没有改变abc的引用地址。但是在for循环时,条件里面的变量和循环体中是两个不同的变量,即使都使用let,也依然不会报错。什么是var的变量提升,在js代码执行时,首先会预编译。在有形参时,用同名的变量也会报错。原创 2023-09-04 22:52:13 · 59 阅读 · 0 评论 -
防抖和节流
在timer定时器有值时,那我就不执行了,意思是他还是会执行之前定时器的代码func,等时间一到就执行。再次触发这个函数时,如果定时器的内容已执行完毕了,timer重新变空了,那再重新设一个定时器。在触发时timer有值的时候,清除定时器,这时不论怎样的情况timer都没有了,所以timer重新设置一个定时器,计时重新开始,直到到了n秒,然后执行func。原理:在外层函数中定义一个timer,内部函数可以访问外部函数的timer,timer就是一个定时器,用到了闭包的原理。节流:n秒内只执行一次。原创 2023-09-04 21:55:45 · 26 阅读 · 0 评论