
ES6
文章平均质量分 56
Henry_楠
这个作者很懒,什么都没留下…
展开
-
async原理实现
前言如果不了解使用的可参考 async 函数,这里不再赘述。想要看原理的童鞋,需要了解下 Generator函数原理async实现就是将 Generator 函数和自动执行器,包装在一个函数里。async function fn(args) { // ...}function fn(args) { return spawn(function* () { // ... })}所有的 async 函数都可以写成上面的第二种形式,其中 spawn 函数就原创 2022-05-31 17:57:13 · 407 阅读 · 0 评论 -
Promise原理及其源码
本文不对 Promise 的用法进行说明,不了解的请前往 ES6 Promise教程接下来,我们来一边分析一边手撸代码1. promise基本结构new Promise((resolve, reject) => { setTimeout(() => { resolve('FULFILLED') }, 1000)})构造函数Promise必须接受一个函数作为参数,我们称该函数为handle,handle又包含resolve和reject两个参数,它们两都是函数。.原创 2022-05-17 17:01:56 · 737 阅读 · 0 评论 -
forEach,for对比map/reduce/filter
async function tmd(i) { await new Promise((resolve) => { setTimeout(() => { console.log(i) resolve() },1000) })}let arr = [1, 2, 3]async function forlog() { for (let i of arr) { await tmd(i) }}async function felog() { arr.for原创 2021-05-26 11:25:16 · 696 阅读 · 0 评论 -
var与let、const的区别及变量提升(函数提升)过程解析
var与let、const一、var声明的变量会挂载在window上,而let和const声明的变量不会:var a = 100;console.log(a,window.a); // 100 100let b = 10;console.log(b,window.b); // 10 undefinedconst c = 1;console.log(c,window.c...原创 2019-11-12 19:57:22 · 2284 阅读 · 0 评论 -
深入:微任务与宏任务
先来看看 MDN是怎么描述的: 微任务与Javascript运行时环境宏任务除了我们比较了解的 setTimeout 和 setInterval 之外,还有 requestAnimationFrame这里有一篇文章介绍 被誉为神器的requestAnimationFrame原创 2021-08-20 11:13:40 · 185 阅读 · 0 评论 -
JavaScript的数据类型及分类
基本数据类型 -> 栈string number boolean null undefined Symbol(es6)引用数据类型 -> 堆array object function data Set(es6) Map(es6)原创 2020-09-04 16:20:10 · 228 阅读 · 0 评论 -
Set对象和Map对象
前言JavaScript的默认对象表示方式{}可以视为其他语言中的Map或Dictionary的数据结构,即一组键值对。但是JavaScript的对象有个小问题,就是键必须是字符串。但实际上Number或者其他数据类型作为键也是非常合理的。为了解决这个问题,最新的ES6规范引入了新的数据类型Map以上摘抄自雪峰老师的教程MapMap是一组键值对的结构,具有极快的查找速度,且内部的key(键)是唯一的const user = { age: 26, name: 'haonan'}le原创 2020-08-26 17:03:47 · 431 阅读 · 0 评论 -
用Symbol.iterator(或yield)实现for...of遍历对象
Symbol.iterator原创 2020-08-25 17:11:08 · 800 阅读 · 0 评论 -
js的yield与generator
yield是什么yield是ES6的新关键字,可以使生成器函数执行暂停,yield关键字后面的表达式的值返回给生成器的调用者。它可以被认为是一个基于生成器版本的return关键字。yield关键字实际返回一个IteratorResult(迭代器)对象,它有两个属性,value和done,分别代表返回值和是否完成。yield无法单独工作,需要配合generator(生成器)的其他函数,如next,懒汉式操作,展现强大的主动控制特性。...原创 2020-08-26 13:18:04 · 1052 阅读 · 2 评论 -
for,for in , for of 和forEach四者对比
for,for in , for of 和forEach四者都是用于循环的,但是每个使用场景都是有所不同,接下来进行一个对比1. 可枚举对象const person = { name: 'henry', age: 26,};for (const key in person) { console.log(key);}//输出结果:name agefor (const value of person) { console.log(value);}// TypeError: pers原创 2020-08-25 15:05:38 · 604 阅读 · 0 评论