![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ES6
文章平均质量分 55
努力爬坑的小崔
学习笔记,又不正确或者不太符合地方请大佬指正一下
展开
-
ES6 map集合
map集合键值对(key value pair)数据集合的特点:键不可重复map集合专门用于存储多个键值对数据。在map出现之前,我们使用的是对象的方式来存储键值对,键是属性名,值是属性值。使用对象存储有以下问题:键名只能是字符串获取数据的数量不方便键名容易跟原型上的名称冲突如何创建mapnew Map(); //创建一个空的mapnew Map(iterable); //创建一个具有初始内容的map,初始内容来自于可迭代对象每一次迭代的结果,但是,它要求每一次迭代的原创 2021-02-06 12:02:27 · 212 阅读 · 0 评论 -
ES6 迭代器
迭代器背景知识什么是迭代?从一个数据集合中按照一定的顺序,不断取出数据的过程迭代和遍历的区别?迭代强调的是依次取数据,并不保证取多少,也不保证把所有的数据取完遍历强调的是要把整个数据依次全部取出迭代器对迭代过程的封装,在不同的语言中有不同的表现形式,通常为对象迭代模式一种设计模式,用于统一迭代过程,并规范了迭代器规格:迭代器应该具有得到下一个数据的能力迭代器应该具有判断是否还有后续数据的能力JS中的迭代器JS规定,如果一个对象具有next方法,并且该方法返回一原创 2021-02-06 12:00:54 · 129 阅读 · 0 评论 -
Fetch Api 概述
Fetch Api 概述XMLHttpRequest的问题所有的功能全部集中在同一个对象上,容易书写出混乱不易维护的代码采用传统的事件驱动模式,无法适配新的 Promise ApiFetch Api 的特点并非取代 AJAX,而是对 AJAX 传统 API 的改进精细的功能分割:头部信息、请求信息、响应信息等均分布到不同的对象,更利于处理各种复杂的 AJAX 场景使用 Promise Api,更利于异步代码的书写Fetch Api 并非 ES6 的内容,属于 HTML5 新增的 Web原创 2021-02-06 11:52:01 · 431 阅读 · 0 评论 -
ES6 async 和 await
async 和 awaitasync 和 await 是 ES2016 新增两个关键字,它们借鉴了 ES2015 中生成器在实际开发中的应用,目的是简化 Promise api 的使用,并非是替代 Promise。async目的是简化在函数的返回值中对Promise的创建async 用于修饰函数(无论是函数字面量还是函数表达式),放置在函数最开始的位置,被修饰函数的返回结果一定是 Promise 对象。async function test(){ console.log(1);原创 2021-02-04 20:44:14 · 201 阅读 · 0 评论 -
Promise的基本使用
Promise的基本使用const pro = new Promise((resolve, reject)=>{ // 未决阶段的处理 // 通过调用resolve函数将Promise推向已决阶段的resolved状态 // 通过调用reject函数将Promise推向已决阶段的rejected状态 // resolve和reject均可以传递最多一个参数,表示推向状态的数据})pro.then(data=>{ //这是thenable函数,如果当原创 2021-02-04 20:40:35 · 204 阅读 · 0 评论 -
ES6 Promise异步处理概念
异步处理的通用模型ES官方参考了大量的异步场景,总结出了一套异步的通用模型,该模型可以覆盖几乎所有的异步场景,甚至是同步场景。值得注意的是,为了兼容旧系统,ES6 并不打算抛弃掉过去的做法,只是基于该模型推出一个全新的 API,使用该API,会让异步处理更加的简洁优雅。理解该 API,最重要的,是理解它的异步模型ES6 将某一件可能发生异步操作的事情,分为两个阶段:unsettled 和 settledunsettled: 未决阶段,表示事情还在进行前期的处理,并没有发生通向结果的那件事原创 2021-02-04 20:14:29 · 129 阅读 · 0 评论 -
ES6 符号
普通符号符号是ES6新增的一个数据类型,它通过使用函数 Symbol(符号描述)来创建符号设计的初衷,是为了给对象设置私有属性私有属性:只能在对象内部使用,外面无法使用符号具有以下特点:没有字面量使用 typeof 得到的类型是 symbol每次调用 Symbol 函数得到的符号永远不相等,无论符号名是否相同符号可以作为对象的属性名存在,这种属性称之为符号属性开发者可以通过精心的设计,让这些属性无法通过常规方式被外界访问符号属性是不能枚举的,因此在 for-in 循环中无法读取到符号原创 2021-02-04 20:06:41 · 222 阅读 · 0 评论 -
ES6对象,数组和解参数解构
对象解构什么是解构使用ES6的一种语法规则,将一个对象或数组的某个属性提取到某个变量中const user = { name: "kevin", age: 11, sex: "男", address: { province: "四川", city: "成都" }}// 先定义5个变量,然后从对象中读取同名属性,放到变量中let { name, age, sex, address, abc = 123 } = userc原创 2021-02-04 19:16:43 · 158 阅读 · 0 评论 -
ES6中类的其他书写方式与继承
ES6中类的其他书写方式可计算的成员名getter和setterObject.defineProperty 可定义某个对象成员属性的读取和设置使用getter和setter控制的属性,不在原型上静态成员构造函数本身的成员使用static关键字定义的成员即静态成员字段初始化器(ES7)注意:1). 使用static的字段初始化器,添加的是静态成员2). 没有使用static的字段初始化器,添加的成员位于对象上3). 箭头函数在字段初始化器位置上,指向当前对象类表原创 2021-02-04 17:35:59 · 224 阅读 · 0 评论 -
ES6理解面向对象
面向对象简介面向对象:一种编程思想,跟具体的语言对比面向过程:面向过程:思考的切入点是功能的步骤面向对象:思考的切入点是对象的划分【大象装冰箱】1.面向过程/** * 大象 */function Elephant() {}/** * 冰箱 */function Frige() {}Frige.prototype.openDoor = function () {}Frige.prototype.closeDoor = function () {}F原创 2021-02-03 22:29:33 · 155 阅读 · 0 评论 -
新增的对象字面量语法
1. 新增的对象字面量语法成员速写如果对象字面量初始化时,成员的名称来自于一个变量,并且和变量的名称相同,则可以进行简写方法速写对象字面初始化时,方法可以省略冒号和function关键字计算属性名有的时候,初始化对象时,某些属性名可能来自于某个表达式的值,在ES6,可以使用中括号来表示该属性名是通过计算得到的。const prop1 = "name2";const prop2 = "age2";const prop3 = "sayHello2";const user = {原创 2021-02-03 22:24:26 · 162 阅读 · 0 评论 -
ES6箭头函数
箭头函数回顾:this指向通过对象调用函数,this指向对象直接调用函数,this指向全局对象如果通过new调用函数,this指向新创建的对象如果通过apply、call、bind调用函数,this指向指定的数据如果是DOM事件函数,this指向事件源使用语法箭头函数是一个函数表达式,理论上,任何使用函数表达式的场景都可以使用箭头函数完整语法:(参数1, 参数2, ...)=>{ //函数体}如果参数只有一个,可以省略小括号参数 => {}如果箭头原创 2021-02-03 22:14:10 · 118 阅读 · 0 评论 -
ES6中块级绑定let,const
声明变量的问题使用var声明变量允许重复的变量声明:导致数据被覆盖变量提升:怪异的数据访问、闭包问题全局变量挂载到全局对象:全局对象成员污染问题// 1. 允许重复的变量声明:导致数据被覆盖var a = 1;function print(){ console.log(a)}// 2. 变量提升:怪异的数据访问if (Math.random() < 0.5) { var a = "abc"; console.log(a);}else {原创 2021-02-03 21:11:26 · 112 阅读 · 0 评论