- 博客(5)
- 收藏
- 关注
原创 JS-为什么说 async/await是generator的语法糖?
关于async的介绍,在阮一峰的ES6入门教程中说到:async 函数是什么?一句话,它就是 Generator 函数的语法糖。可是,为什么这么说呢?首先,比如说有一个异步操作,使用 async/await 语法来以同步模拟异步操作。使用 async/await 实现一个 sleep 的功能function sleep(time) { return new Promise((re...
2019-04-14 19:13:46 4108 1
原创 JS-Generator 执行器的实现
Generator 是一个异步操作的容器。它的自动执行需要一种机制,当异步操作有了结果,自动交回执行权。两种方法可以实现执行器:回调函数。将异步操作包装成 Thunk 函数,在回调函数里面交回执行权;Promise 对象。将异步操作包装成 Promise 对象,用 then 方法中交回执行权Thunk 函数实现 generator 执行器在js中实现异步的方式为回调函数,比如读取文件...
2019-04-14 18:59:41 2143
原创 JS-原型,原型链,基于原型和class方式的继承,一篇文章就够了!
原型每个函数(构造函数)都有一个 prototype 属性,指向该函数(构造函数)的原型对象。实例没有 prototype 属性,但是有 __proto__ 属性。函数同时有 prototype 和 __proto__ 属性。function Person(name) { this.name = name;}let person = new Person('xiaoming');...
2019-04-12 15:44:58 1544
原创 JS- async和defer对script脚本加载的影响
直接使用script脚本的话,html会按照顺序来加载并执行脚本,在脚本加载&执行的过程中,会阻塞后续的DOM渲染。这是因为 UI 渲染线程与 JS 引擎是互斥的,当 JS 引擎执行时 UI 线程会被挂起。defer如果script标签设置了该属性,则浏览器会异步的下载该文件并且不会影响到后续 DOM 的渲染;如果有多个设置了 defer 的script标签存在,则会按照顺序执行所...
2019-04-11 11:01:07 961
原创 JS-前端使用Blob和File读取文件
目录Blob及其属性和方法FileFileReader及其属性和方法URL及其属性和方法历史上,JavaScript 无法处理二进制数据。如果一定要处理的话,只能使用 charCodeAt() 方法,一个个字节地从文字编码转成二进制数据,还有一种办法是将二进制数据转成 Base64 编码,再进行处理。这两种方法不仅速度慢,而且容易出错。ECMAScript 5 引入了 Blob 对象...
2019-04-07 15:10:16 26102 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人