
ES6
马优晨
生活中的打击和挫折远比想象的更多,有时灾难又会让你的一切努力白费,也许明天我们就会死去,但如果我们还活着,在面对着种种不公和无奈过后,“明天的明天的明天,你是否会依然爱着这个世界。” 我想我会.......................
展开
-
Promise读取多个文件
传统回调读取多个文件?const fs = require("fs");fs.readFile('./resources/为学.md', (err, data1)=>{ fs.readFile('./resources/插秧诗.md', (err, data2)=>{ fs.readFile('./resources/观书有感.md', (err, data3)=>{ let result = data1 + '\r\n' +dat原创 2021-06-29 11:52:30 · 503 阅读 · 0 评论 -
Promise封装ajax
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>发送 AJAX 请求</title></head><body> <scri.原创 2021-06-29 11:42:12 · 420 阅读 · 0 评论 -
迭代器自定义遍历对象
要说起迭代器自定义遍历对象,首页要知道什么是迭代器?生成器概念在Java,Python等语言中都是具备的,ES6也添加到了JavaScript中。Iterator可以使我们不需要初始化集合,以及索引的变量,而是使用迭代器对象的 next 方法,返回集合的下一项的值,偏向程序化。迭代器是带有特殊接口的对象。含有一个next()方法,调用返回一个包含两个属性的对象,分别是value和done,value表示当前位置的值,done表示是否迭代完,当为true的时候,调用next就无效了。ES5中遍历集原创 2021-06-29 10:59:04 · 578 阅读 · 0 评论 -
为什么使用ES6生成器
官方解释:1、异步编程,文件操作,网络操作(ajax, request) 数据库操作使用生成器操作更加方便;2、有效的解决回调地狱的问题;举例:请在控制台 1s 后控制台输出 111 ,2s后输出 222 ,3s后输出 333。(1)使用传统的的回调写法 setTimeout(() => { console.log(111); setTimeout(() => { ..原创 2021-06-27 16:26:03 · 222 阅读 · 0 评论 -
es6变量赋值重命名
es6变量赋值重命名:var cc = { te: “ni hao”,};var { te } = cc;var { te: bb } = cc;console.log(te); // ni haoconsole.log(bb); / /ni hao常用于 避免命名重复和 简化命名的情况;原创 2020-11-26 20:03:38 · 1714 阅读 · 0 评论 -
使用await实现多接口并行调用
const [ { data: { code }, }, { data: { code: aCode, data: aInfo }, } ] = await Promise.all([ stop.getEnrollment({ data: { userId, }, }), stop.properties({ data: { ...原创 2020-10-27 16:20:48 · 2454 阅读 · 0 评论 -
js常用reduce方法
一、reduce使用场景(1)reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。(2)reduce() 可以作为一个高阶函数,用于函数的 compose。二、reduce使用说明array.reduce(function(total, currentValue, currentIndex, arr), initialValue)接受四...原创 2019-10-31 11:26:05 · 2176 阅读 · 0 评论 -
generator 中 调用另一个 generator
(1)for…of循环可以自动遍历 Generator 函数运行时生成的Iterator对象function doAutomaticTraversal () { let arry = [] function* foo () { yield 1 yield 2 yield 3 yield 4 yield 5 return 6 } fo...原创 2019-09-23 16:08:51 · 338 阅读 · 0 评论 -
让同步函数同步执行,异步函数异步执行,并且让它们具有统一的 API
这里说两种方式,和官网的上的是一样的:第一种使用: async+ 立即执行函数 <div>方法一:async ()() 立即执行函数: {{doAsyncData.desc}}</div> doAsync () { const f = () => { return 'my ' } // f()是...原创 2019-09-20 10:32:53 · 1168 阅读 · 0 评论 -
关于箭头函数的嵌套
关于箭头函数嵌套,也称为函数柯里化,它只不过是箭头函数的语法糖。那在项目中一般怎么使用呢?(1)普通函数:function add(a, b) { return a + b;}(2)普通函数柯里化(匿名函数)function add(a) { return function(b) { return a + b; }}调用 console.l...原创 2019-09-16 15:35:10 · 2410 阅读 · 0 评论 -
ES6标签模板
可以紧跟在一个函数名后面,该函数将被调用来处理这个模板字符串。这被称为“标签模板”功能(tagged template)。let a = 5;let b = 10;function tag(s, v1, v2) { console.log(s[0]); console.log(s[1]); console.log(s[2]); console.log(v1); cons...原创 2019-09-11 18:31:43 · 335 阅读 · 0 评论 -
ES6结构赋值的用途
(1)交换变量的值let x = 1;let y = 2;[x, y] = [y, x];上面代码交换变量x和y的值,这样的写法不仅简洁,而且易读,语义非常清晰(2)从函数返回多个值函数只能返回一个值,如果要返回多个值,只能将它们放在数组或对象里返回。有了解构赋值,取出这些值就非常方便。// 返回一个数组function example() { return [1, 2,...转载 2019-09-11 13:33:15 · 192 阅读 · 0 评论 -
ES6 模块化操作
在ES5中我们要进行模块华操作需要引入第三方类库(common.js, require.js 等等),随着前后端分离,前端的业务日渐复杂,ES6为我们增加了模块话操作。(模块化 区别 于 组件化,这个是两个概念。模块化操作主要包括两个方面。export :负责进行模块化,也是模块的输出。import : 负责把模块引,也是模块的引入操作。export的用法:export可以让我们把变...原创 2019-03-01 18:15:59 · 412 阅读 · 0 评论 -
ES6 Proxy的简单使用
我们用new的方法对Proxy进行声明。可以看一下声明Proxy的基本形式。new Proxy({},{});需要注意的是这里是两个花括号,第一个花括号就相当于我们方法的主体,后边的花括号就是Proxy代理处理区域,相当于我们写钩子函数的地方。var pro = new Proxy({ add: function (val) { return val + 10; ...原创 2019-03-01 17:41:31 · 853 阅读 · 0 评论 -
Iterator 遍历器的简单使用
Object接口 实现Iterator我们可以使用 ES6 的展开运算符 … 和 for…of… 去遍历带有 Iterator 接口的数据结构,需要注意的是,Object 本身不具备 Iterator 接口,所以我们无法通过 … 把一个对象扩展到一个数组中,并且会报错,我们可以通过代码手动将 Object 类型实现 Iterator 接口。没有实现Iterator 接口的Object...原创 2018-07-31 10:38:33 · 3010 阅读 · 0 评论