【笔记】ECMAScript 6-11

ES6新特性

1.let关键字

let关键字用来声明变量,使用let声明的变量有几个特点:

  • 不允许重复声明
  • 块儿级作用域
  • 不存在变量提升
  • 不影响作用域链
  • 应用场景:以后声明变量使用 let 就对了

2.const关键字

const 关键字用来声明常量,const 声明有以下特点:

  • 声明必须赋初始值

  • 标识符一般为大写

  • 不允许重复声明

  • 值不允许修改

  • 块儿级作用域

     注意: 对象属性修改和数组元素变化不会发出 const 错误 应用场景:声明对象类型使用 const,非对象类型声明选择 let
    

3.变量的解构赋值

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构赋值。

1)数组的解构:
数组的解构
2)对象的解构
对象的解构

注意:频繁使用对象方法、数组元素,就可以使用解构赋值形式

4.模板字符串

模板字符串(template string)是增强版的字符串,用反引号(`)标识,特点:

  • 字符串中可以出现换行符
  • 可以使用 ${xxx} 形式输出变量
    在这里插入图片描述

5.箭头函数

ES6允许使用【箭头】 (=>)定义函数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • this直接调用的话,是指向window的
  • 箭头函数 this是静态的,this始终指向函数声明时所在作用域下的this的值
  • 箭头函数不能作为构造实例化对象
  • 箭头函数的简写(省略小括号,当形参有且只有一个的时候)(省略花括号,当代码体只有一条语句的时候)
    在这里插入图片描述
    在这里插入图片描述

6.rest参数

ES6 引入 rest 参数, 用于获取函数的实参,用来代替arguments
在这里插入图片描述

7.spread扩展运算符

... 扩展运算符能将数组转换为逗号分隔的参数序列
在这里插入图片描述
在这里插入图片描述

8.扩展运算符的应用

  • 数组的合并

在这里插入图片描述
在这里插入图片描述

  • 数组的克隆
    在这里插入图片描述
    在这里插入图片描述

  • 将伪数组转为真正的数组
    在这里插入图片描述
    在这里插入图片描述

9.Symbol

ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。它是JavaScript语言的第七种数据类型,是一种类似于字符串的数据类型。
Symbol 特点

  • Symbol的值是唯一的,用来解决命名冲突的问题
  • Symbol的值不能与其他数据进行运算
  • Symbol定义的对象属性不能使用for…in 循环遍历,但是可以使用Reflect.ownkeys来获取对象的所有键名

在这里插入图片描述

10 .Symbol内置属性

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11.迭代器

for…in 遍历的是键名
在这里插入图片描述在这里插入图片描述
使用 for… of 遍历的是键值
在这里插入图片描述在这里插入图片描述
工作原理

  • 创建一个指针对象,指向当前数据结构的起始位置
  • 第一次调用对象的next()方法,指针自动指向数据结构的第一个成员
  • 接下来不断调用next()方法,指针一直往后移动,直到指向最后一个成员
  • 每调用next()方法,返回一个包含value和down属性的对象
  • 注意(需要自定义遍历数据的时候,要想到迭代器)

12.生成器

生成器函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

13.Promise

Promise是ES6引入的异步编程的新解决方案。
语法上Promise是一个构造函数,用来封装异步操作并可以获取其成功或者失败的结果。
  • Promise构造函数:Promise(excutor) {}

  • Promise.prototype.then 方法

  • Promise.prototype.catch 方法
    在这里插入图片描述

  • Promise封装AJAX操作
    在这里插入图片描述
    成功拿到数据在这里插入图片描述

  • 调用then 方法 then 方法的返回结果是promise对象, 对象状态由回调函数的执行结果决定

  • 如果回调函数中返回的结果是非promise 类型的属性,状态为成功, 返回值为对象的成功的值

14.Set

ES6提供了新的数据结构 Set(集合).她类似于数组,但成员的值都是唯一的,集合实现了iterator接口,所以可以使用【扩展运算符】和【for…of…】进行遍历,集合的属性和方法:

  • size 返回集合的元素个数
  • add 增加一个新元素,返回当前集合
  • delete 删除元素,返回boolean值
  • has 检测集合中是否包含某个元素,返回boolean值
    在这里插入图片描述
    在这里插入图片描述
  • 数组去重
    在这里插入图片描述
    在这里插入图片描述
  • 交集
    在这里插入图片描述
    在这里插入图片描述
  • 并集
    在这里插入图片描述在这里插入图片描述
  • 差集
    在这里插入图片描述在这里插入图片描述

15.class 类

ES6提供了更接近传统语言的写法,引入了Class(类)这个概念,作为对象的模板。通过Class关键字,可以定义类。基本上,ES6的Class可以看做只是一个语法糖,它的绝大部分功能,ES5都可以做到,新的class写法只是让对象原型的写法更加清晰、更像面对对象编程的语法而已。

16.数值扩展

  1. Number.EPSILON是JavaScript表示的最小精度(EPSILON属性的值接近于 2.2204460492503130808472633361816E-16)在这里插入图片描述在这里插入图片描述

  2. 二进制和八进制在这里插入图片描述在这里插入图片描述

  3. Number.isFinite 检测一个数值是否为有限数在这里插入图片描述在这里插入图片描述

  4. Number.isNaN 检测一个数值是否为NaN在这里插入图片描述在这里插入图片描述

  5. Number.parseInt、Number.parseFloat字符串转整数在这里插入图片描述在这里插入图片描述

  6. Number.isInteger 判断一个数是否为整数在这里插入图片描述在这里插入图片描述

  7. Math.trunc 将数字的小数部分抹掉在这里插入图片描述在这里插入图片描述

  8. Math.sign 判断一个数到底为正数 负数 还是零在这里插入图片描述在这里插入图片描述

17.对象方法扩展

  1. Object.is 判断两个值是否相等在这里插入图片描述在这里插入图片描述
  2. Object.assign 对象的合并在这里插入图片描述在这里插入图片描述
  3. Object.setPrototypeOf、Object.getPrototypeOf 设置原型对象 在这里插入图片描述在这里插入图片描述

18.ES6模块化

模块化是指将一个大的程序文件,拆分成许多小的文件,然后将小文件组合起来。

模块化的优势有以下几点:

  • 防止命名冲突
  • 代码复用
  • 高维护性

ES6之前的模块化规范有:

  • CommonJS => NodeJS、Browserify
  • AMD => requireJS
  • CMD => seaJS

18.1 ES6模块化语法

模块功能主要由两个命令构成: export和import

  • export命令用于规定模块的对外接口
  • import命令用于输入其他模块提供的功能

19 ECMAScript 7 新特性

19.1 Array.prototype.includes

includes 方法用来检测数组中是否包含某个元素,返回布尔类型值

在这里插入图片描述在这里插入图片描述

19.2 指数操作符

在ES7中引入指数运算符 【**】,用来实现幂运算,功能与Math.pow结果相同

在这里插入图片描述在这里插入图片描述

20 ECMAScript 8 新特性

20.1 async 和 await

async 和 await 两种语法结合可以让异步代码像同步代码一样

20.2 async 函数

  1. async函数的返回值为promise对象
  2. promise对象的结果由async函数执行的返回值决定

20.3 await 表达式

  1. await 必须写在async函数中
  2. await 右侧的表达式一般为promise对象
  3. await 返回的是promise成功的值
  4. await的promise失败了,就会抛出异常,需要通过try…catch捕获处理

20.4 Object.values 和 Object.entries

  1. Object.values()方法返回一个给定对象的所有可枚举属性值的数组
  2. Object.entries方法返回一个给定对象自身可遍历属性[key, value]的数组

20.5Object.getOwnPropertyDescriptors

该方法返回指定对象所有自身属性的描述对象

21 ECMAScript 9 rest参数

rest 参数与spread扩展运算符在ES6中已经引入, 不过ES6中只
针对于数组, 在ES9中为对象提供了像数组一样的rest参数和扩展运算符

在这里插入图片描述在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46319117/article/details/115963008
今日推荐