![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ES6
飞羽逐星
既然厌倦于追寻,那便一觅其中;自从一股逆风袭来,我已学会抵挡八面来风。
展开
-
ES6——数组API
数组API一、数组API1.静态方法2.实例方法一、数组API1.静态方法Array.of(…args): 使用指定的数组项创建一个新数组Array.from(arg): 通过给定的类数组 或 可迭代对象 创建一个新的数组。const arr = Array.of(5);//值为5,length为1const arr1 = new Array(10);//length为10的空数组console.log(arr);console.log(arr1);const arr2 = {原创 2020-08-13 10:23:50 · 853 阅读 · 0 评论 -
ES6——代理与反射
代理与反射一、Reflect1.Reflect是什么2.可以做什么3.API二、Proxy代理三、应用-观察者四、应用-'简化'构造函数五、应用-可验证函数一、Reflect1.Reflect是什么Reflect是一个内置的JS对象,它提供了一系列方法,可以让开发者通过调用这些方法,访问一些JS底层功能。由于它类似于其他语言的反射,因此取名为Reflect。2.可以做什么使用Reflect可以实现诸如 属性的赋值与取值、调用普通函数、调用构造函数、判断属性是否存在与对象中 等等功能。有一个重原创 2020-08-12 21:44:08 · 598 阅读 · 0 评论 -
属性描述符
属性描述符一、属性描述符1.简介2.存取器属性一、属性描述符1.简介Property Descriptor 属性描述符 是一个普通对象,用于描述一个属性的相关信息通过Object.getOwnPropertyDescriptor(对象, 属性名)可以得到一个对象的某个属性的属性描述符value:属性值configurable:该属性的描述符是否可以修改enumerable:该属性是否可以被枚举writable:该属性是否可以被重新赋值const obj = { a: 1,原创 2020-08-12 16:09:37 · 953 阅读 · 0 评论 -
ES6——set和map集合
set集合一、set集合1.创建set集合2.set集合后续操作3.与数组进行相互转换4.遍历3.set集合应用二、map集合1.创建map2.后续操作3.和数组互相转换4.遍历三、WeakSet 和 WeakMap1.WeakSet2. WeakMap一、set集合一直以来,JS只能使用数组和对象来保存多个数据,缺乏像其他语言那样拥有丰富的集合类型。因此,ES6新增了两种集合类型(set 和 map),用于在不同的场景中发挥作用。set用于存放不重复的数据1.创建set集合new Set();原创 2020-08-12 11:13:34 · 357 阅读 · 1 评论 -
ES6——迭代器
迭代器一、迭代器1.什么是迭代?2.迭代和遍历的区别3.迭代器4.迭代模式5.JS中的迭代器二、可迭代协议与for-of循环1.可迭代协议2.for-of 循环3.展开运算符与可迭代对象三、生成器1.什么是生成器2.如何创建生成器3.书写一个生成器函数4.生成器函数内部是如何执行5.注意的细节6.生成器的其他API7.生成器应用-异步任务控制一、迭代器1.什么是迭代?从一个数据集合中按照一定的顺序,不断取出数据的过程2.迭代和遍历的区别迭代强调的是依次取数据,并不保证取多少,也不保证把所有的数据取原创 2020-08-11 21:20:17 · 1182 阅读 · 1 评论 -
ES6——Fetch Api
Fetch Api一、概念1.XMLHttpRequest的问题2.Fetch Api 的特点二、基本使用1.必填参数,字符串,请求地址2.选填参数,对象,请求配置3.返回值1.返回一个 Promise 对象2.Response对象三、Request 对象四、Response 对象五、Headers 对象六、文件上传一、概念1.XMLHttpRequest的问题所有的功能全部集中在同一个对象上,容易书写出混乱不易维护的代码采用传统的事件驱动模式,无法适配新的 Promise Api2.Fetc原创 2020-08-11 15:17:47 · 449 阅读 · 0 评论 -
ES6——async和await
async和await一、async二、await三、实例四、改造计时器async 和 await 是 ES2016 新增两个关键字,它们借鉴了 ES2015 中生成器在实际开发中的应用,目的是简化 Promise api 的使用,并非是替代 Promise。一、async目的是简化在函数的返回值中对Promise的创建async 用于修饰函数(无论是函数字面量还是函数表达式),放置在函数最开始的位置,被修饰函数的返回结果一定是 Promise 对象。async function test(){原创 2020-08-10 22:57:37 · 565 阅读 · 0 评论 -
ES6——其它API
其它API一、原型成员 (实例成员)1.then2.catch3.finally二、构造函数成员 (静态成员)1.resolve(数据)2.reject(数据)3.all(iterable)4.race(iterable)一、原型成员 (实例成员)1.then注册一个后续处理函数,当Promise为resolved状态时运行该函数2.catch注册一个后续处理函数,当Promise为rejected状态时运行该函数3.finally[ES2018]注册一个后续处理函数(无参),当Promise原创 2020-08-10 21:07:18 · 239 阅读 · 0 评论 -
ES6——Promise的串联
Promise的串联一、Promise的串联二、问题优化一、Promise的串联当后续的Promise需要用到之前的Promise的处理结果时,需要Promise的串联Promise对象中,无论是then方法还是catch方法,它们都具有返回值,返回的是一个全新的Promise对象,它的状态满足下面的规则:如果当前的Promise是未决的,得到的新的Promise是挂起状态如果当前的Promise是已决的,会运行响应的后续处理函数,并将后续处理函数的结果(返回值)作为resolved状态数据,原创 2020-08-10 15:59:33 · 753 阅读 · 1 评论 -
ES6——异步处理与Promise
异步处理与Promise一、异步处理1.两个阶段2.事情三种状态3.到达阶段后续处理二、Promise1.基本使用2.注意点3.事件和回调的优化一、异步处理ES官方参考了大量的异步场景,总结出了一套异步的通用模型,该模型可以覆盖几乎所有的异步场景,甚至是同步场景。值得注意的是,为了兼容旧系统,ES6 并不打算抛弃掉过去的做法,只是基于该模型推出一个全新的 API,使用该API,会让异步处理更加的简洁优雅。理解该 API,最重要的,是理解它的异步模型1.两个阶段ES6 将某一件可能发生异步操作原创 2020-08-10 10:09:30 · 315 阅读 · 0 评论 -
事件和回调缺陷
事件和回调缺陷一、事件和回调1.事件2.回调二、问题与缺陷1.回调地狱2. 异步之间的联系:一、事件和回调我们习惯于使用传统的回调或事件处理来解决异步问题1.事件某个对象的属性是一个函数,当发生某一件事时,运行该函数dom.onclick = function(){}2.回调运行某个函数以实现某个功能的时候,传入一个函数作为参数,当发生某件事的时候,会运行该函数。dom.addEventListener("click", function(){});本质上,事件和回调并没有本质的区原创 2020-08-09 23:21:48 · 568 阅读 · 0 评论 -
js事件循环原理
事件循环一、执行栈二、异步函数一、执行栈JS运行的环境称之为宿主环境。执行栈:call stack,一个数据结构,用于存放各种函数的执行环境,每一个函数执行之前,它的相关信息会加入到执行栈。函数调用之前,创建执行环境,然后加入到执行栈;函数调用之后,销毁执行环境。(单线程不容易冲突,但是效率低)如下函数:function a() { console.log("a") b();}function b() { console.log("b"); c();}fu原创 2020-08-09 21:35:02 · 2345 阅读 · 0 评论 -
ES6——符号Symbol
符号一、普通符号1.创建一个符号2.符号的特点二、共享符号1.基础2.实现三、知名符号1.Symbol.hasInstance2.Symbol.isConcatSpreadable一、普通符号符号是ES6新增的一个数据类型,它通过使用函数 Symbol(符号描述)来创建1.创建一个符号const syb1 = Symbol();const syb2 = Symbol("abc");console.log(syb1, syb2);2.符号的特点符号设计的初衷,是为了给对象设置私有属性这里原创 2020-08-09 16:07:58 · 382 阅读 · 0 评论 -
ES6——解构
解构一、对象解构1.同名属性解构2.解构中使用默认值3.非同名属性解构4.多重解构二、数组解构1.基础2.多重解构3.展开运算符4.练习三、参数解构一、对象解构1.同名属性解构使用ES6的一种语法规则,将一个对象或数组的某个属性提取到某个变量中,解构不会对被解构的目标造成任何影响const user = { name: "jimo", age: 18, sex: "男", address: { province: "四川", city:原创 2020-08-09 09:50:45 · 1542 阅读 · 0 评论 -
ES6——对象
对象一、新增语法1.成员速写2.方法速写3.计算属性名二、对象新增API1.Object.is2.Object.assign3.Object.getOwnPropertyNames4.Object.setPrototypeOf三、面向对象简介1.面向过程2.面向对象四、构造函数1.传统的构造函数的问题2.类1.基础2.类的可计算的成员名3.getter和setter4.静态成员5.字段初始化器(ES7)6.类表达式3、类的继承1.基础2.新方法3.逻辑方面一、新增语法1.成员速写如果对象字面量初始化时原创 2020-08-08 20:51:41 · 597 阅读 · 0 评论 -
ES6——函数
函数一、参数默认值1.使用2.对arguments的影响二、剩余参数三、展开运算符1.对数组展开2.对对象展开3.运用1.柯里化3.比大小3.输入输出四、函数用图五、箭头函数1.使用箭头函数2.注意3.应用一、参数默认值1.使用在书写形参时,直接给形参赋值,附的值即为默认值这样一来,当调用函数时,如果没有给对应的参数赋值(给它的值是undefined),则会自动使用默认值。function test(a=1,b=2){ console.log(a+b);}test();// 3注意原创 2020-08-08 00:05:38 · 635 阅读 · 0 评论 -
ES6——字符串正则
字符串正则一、更好的Unicode支持1.长度2.正则3.码元码点4.二、字符串实例1.includes2.startsWith3.endsWith4.repeat三、正则中的粘连标记四、模板字符串五、模板字符串标记1.问题2.解决一、更好的Unicode支持1.长度早期,由于存储空间宝贵,Unicode使用16位二进制来存储文字。我们将一个16位的二进制编码叫做一个码元(Code Unit)。后来,由于技术的发展,Unicode对文字编码进行了扩展,将某些文字扩展到了32位(占用两个码元),并且,原创 2020-08-07 13:28:28 · 803 阅读 · 0 评论 -
ES6——块级绑定
块级绑定一、声明变量的问题1.重复声明2.变量提升3.全局变量挂载二、let声明变量1.块级作用域2.声明变量3.变量提升三、const声明常量1.变量声明2.常量命名3.循环遍历一、声明变量的问题1.重复声明允许重复的变量声明:导致数据被覆盖var a = 1;function print(){ console.log(a)}print();//1var a = 2;print();//22.变量提升怪异的数据访问if (Math.random() < 0.5)原创 2020-08-07 09:10:19 · 322 阅读 · 0 评论 -
ES6概述
概述一、概述一、概述ECMAScript、JavaScript、NodeJs,它们的区别是什么?ECMAScript:简称ES,是一个语言标准(循环、判断、变量、数组等数据类型)JavaScript:运行在浏览器端的语言,该语言使用ES标准。 ES + web api = JavaScriptNodeJs:运行在服务器端的语言,该语言使用ES标准。 ES + node api = JavaScript无论JavaScript,还是NodeJs,它们都是ES的超集(super set)E原创 2020-08-06 21:44:57 · 230 阅读 · 0 评论