FunnyZ

Results 7 comments of FunnyZ

@digiphaze , I also have this proplem and your answer is pretty well. However, the source code to amend the package file is not very good

图片懒加载其实就是用一个自定义属性存储图片的src,当且仅当图片出现或进入可视范围才去加载它。 下面是两种方法实现图片懒加载: ```javascript /* getBoundClientRect 的实现方式,监听 scroll 事件 */ let imgList = [...document.querySelectorAll('img')]; let num = imgList.length; let lazyLoad = (function() { let count = 0; return function() { let...

- 父级元素添加伪元素 ```css .clear-float:after { content: ''; display: block; clear: both; } ``` - 在与浮动元素平级的最后面添加新元素 div.clear ```css .clear { clear: both; } ``` - 在父级元素添加样式 overflow: auto; 或者 overflow: hidden;...

> Promise 是异步编程的一种解决方案 因为有回调地狱的出现,才会促使开发者去寻找一种更简洁的、链式的解决方案,才促使了 Promise 的出现。 Promise 对象的特点: - 对象的状态不受外界影响(三种状态: pending 进行中, fulfilled 已成功, rejected 已失败) - 一旦状态改变,就不会再变(pending -> fulfilled, pending -> rejected) Promise 对象的缺点: - 无法取消 - 如果不设置回调函数,Promise 内部抛出的错误,不会反应到外部...

这个就涉及到**事件循环(Event Loop)** > JS运行时,对代码执行顺序的一个算法(任务调度算法) JS 分类:同步任务和异步任务 JS 的执行机制: - 首先判断JS代码是同步还是异步,同步就进入主线程,异步就进入 event table - 异步任务在 event table 中注册函数,当满足触发条件后,被推入event queue - 同步任务进入主线程后一直执行,直到主线程空闲时,才回去 event queue 中查看是否有可执行的异步任务,如果有就推入主线程 event loop 里有维护两个不同的异步任务队列 - macro Tasks(宏任务):script(整体代码), setTimeout,...

粗略讲一下,希望大佬们能补充下。 首先这三个方法都是用来改变函数的 this 的绑定(指向)的。 它们的用法如下: ```js func.apply(thisArg, [argsArray]) fun.call(thisArg, arg1, arg2, ...) function.bind(thisArg[, arg1[, arg2[, ...]]]) ``` 区别: - call 和 apply 的区别在于传参的形式不一样,apply 的参数形式是数组或类数组对象,call 的参数形式则是一个个排列的参数值; - bind 返回的是原函数的拷贝,并拥有指定的 this 值和初始参数;而...