前端开发

a模拟window.open打开窗口

2019-05-242852次阅读javascript
因为有些浏览器会默认拦截window.open,当需要函数中打开窗口,可以使用a标签模拟window.open
前端开发

js节流函数

2019-05-231895次阅读javascript
js有些事件例如resize,mousemove等是会不间断触发的,如果这些事件的回调函数里有操作DOM、复杂算法或者Ajax向服务器发送请求等就会严重影响性能及其资源浪费。为了避免这个问题,我们一般会使用定时器来对函数进行节流。
前端开发

ES6之Proxy

2019-05-221902次阅读ES6javascript
Proxy可以被认为是Object.defineProperty()的升级版。外界对某个对象的访问,都必须经过这层拦截。因此它是针对整个对象,而不是对象的某个属性,所以也就不需要对keys进行遍历。
前端开发

Object.defineProperty的问题

2019-05-221939次阅读javascript
关于Object.defineProperty的介绍看这里,今天又看到《数据劫持 OR 数据代理》一文,我就转载收藏记录一下关于Object.defineProperty的问题。
前端开发

理解defineProperty以及getter、setter

2019-05-221675次阅读javascript
我们常听说vue是用getter与setter实现数据监控的,那么getter与setter到底是什么东西,它与defineProperty是什么关系,平时有哪些用处呢?本文将为大家一一道来。注:Vue.js 3.0不再使用Object.defineProperty而是原生Proxy。
前端开发

Element.closest()简化事件处理程序中匹配最近的父元素

2019-05-143100次阅读javascript
Element.closest()方法用来获取:匹配特定选择器且离当前元素最近的祖先元素(也可以是当前元素本身)。如果匹配不到,则返回null。使用Element.closest()简化事件处理程序中匹配最近的父元素。
前端开发

script标签async、defer属性及其区别

2019-05-112383次阅读javascript
async脚本会在下载后立即执行,而不保持顺序。这意味着如果有一个异步React bundle包和异步app bundle应用程序包,并且React bundle包更大,则app bundle应用程序将比React更早下载并执行(发生js依赖错误并中断执行)。与async不同,defer只有在下载完所有脚本后才能以正确的顺序执行。因此,在优化大型复杂应用程序时,defer延迟可能比async异步更安全。
前端开发

再次认识requestAnimationFrame以及其polyfill库raf

2019-05-082801次阅读javascript
window.requestAnimationFrame() 方法告诉浏览器希望执行动画并请求浏览器调用指定的函数在下一次重绘之前更新动画。它采用系统时间间隔,保持最佳绘制效率,不会因为间隔时间过短,造成过度绘制,增加开销;也不会因为间隔时间太长,使动画卡顿不流畅,让各种网页动画效果能够有一个统一的刷新机制,从而节省系统资源,提高系统性能,改善视觉效果。requestAnimationFrame还有一个很好用的polyfill库raf推荐给大家。
前端开发

JavaScript数组扁平化

2019-05-051930次阅读javascriptArray
数组的扁平化,就是将一个嵌套多层的Array数组(嵌套可以是任何层数)转换为只有一层的数组。
前端开发

您可能不需要jquery

2019-05-051509次阅读javascript原生Js
刚开始使用jQuery可以帮助我们免受浏览器不兼容的烦恼,但现代的浏览器更新发展超乎我们的想象,所以有些情况下根本不需要引入一个jQuery库文件。一味的使用jQuery,会让你忘了或失去很多原生Javascript的魅力。