李星亮
李星亮
概念:函数的节流就是预定一个函数只有在大于等于执行周期时才会执行,周期内调用不会执行。好像一滴水只有积攒到一定重量才会落下一样。 场景:窗口调整(resize)、页面滚动(scroll)、抢购疯狂点击(movedown) function scrollFn(){ console.log(1) } function throttle(method,delay,duration){ var timer=null; var begin=new Date(); return function(){ var context=this, args=arguments; var current=new Date(); clearTimeout(timer); if(current-begin>=duration){ method.apply(context,args); begin=current; }else{ timer=setTimeout(function(){ method.apply(context,args); },delay); }...
异步加载的很多 1.async 在html5新增的属性,谷歌、火狐、ie9(ie6-ie8)不支持 2.H4属性中的defer 兼容所有浏览器 3.两个方法的区别 1、defer脚本的执行会在window.onload之前,其他没有添加defer属性的script标签之后。 2、async会让脚本在下载完可用时立即执行,而defer脚本则会在dom加载完毕后执行, 3、async不能确保加载执行的顺序,多个 defer 脚本,会按照它们在页面出现的顺序加载
今天这个题看一些博客,还是有点不解,可能是在平时没有用到过的原因,这个防抖说的大概意思就是,函数执行完一次再去触发执行第二次,如果是这样的话,设置一个开关是否可行,还有设置一个倒计时,函数触发后倒计多少秒后在执行; 看了以上的各位的写的都差不多,还是对其一些传参不解,今天先记录一下吧; var timer = null function debounce(){ clearTimeout(timer) timer = setTimeout(function(){ console.log(1) }, 1000) } https://css-tricks.com/debouncing-throttling-explained-examples/值得一看 https://mp.weixin.qq.com/s/Vkshf-nEDwo2ODUJhxgzVA
https://juejin.im/post/58eaecdea0bb9f0069271861 这篇文讲述了底层的原理, JS上下文栈:一个javascript程序中,必定会产生多个执行上下文,javascript引擎会以栈的方式来处理它们,也就是执行上下文栈 作用域链:JS引擎中,通过标识符查找标识符的值,会从当前作用域向上查找,直到作用域找到第一个匹配的标识符位置。就是JS的作用域链。 这是很通俗易懂的,但是如果理解其本质的内容的话,需要多加练习