一,异步(async)与等待(await)
是对JavaScript异步编程的巨大改进。 它提供了一种使用同步样式代码来异步访问资源的选项,而不会阻塞主线程。
示例:
:需要注意的是等待(await)只能在async函数里面使用
当函数遇到await 等待 await结果,再往下执行
:而async装饰的函数只能是一个promise对象
二,迭代器与生成器
迭代器:
生成器:普通函数前面添加*,通过yield关键字来控制生成,最终函数执行 返回一个可迭代元素
生成器示例:
此示例可以生成一个一百以内由奇数组成的数组,range()方法可以传入三个参数,第一个参数代表从哪个数字开始,第二个参数代表到哪个数字结束,第三个参数代表相隔几个输出,只需把range()里的参数修改为(2,101,2)就可以得到一个由一百以内偶数组成的数组。
三,代理(Proxy)
它的作用就是当我们对某个数据值进行操作的时候,进行拦截处理,监听操作。
示例:
此示例创建一个对象Object ,并添加了代理(proxy),当我在控制台输入o时,会得到
此时创建的var obj对象已被字母o代理,可以输入o.name会得到mumu,但是o.属性不是name时,会得到"哇啊哇"字符串,这是在get中定义好的,在set中做了判断如果给o.age设置的范围超过200或者小于0时,控制台会报一个意为范围错误的提示:
控制台中的效果:
利用代理(proxy)可以实现一个简易的双向绑定效果,
示例:
修改表单里的值,下面p标签内的文本值会一起改变。
四,承诺(promise)
作用:执行异步任务,避免回调地狱
示例: