promise 函数构造新方法 array。arrayfrom set map 扩展运算符省略号将数组逗号分割参数
var let const promise then()第一个参数resolve 成功第二参数reject拒绝
三种状态pending fulfuilled rejected catch返回报错的结果 finally无论对错都会执行
二、Set
**
1、Set是es6新增的数据结构,类似于数组,但是成员的值都是唯一的,没有重复的值,我们一般称为集合**
ES6 Module:
- ES6 提出的方案,使用 import 和 export 的形式来导入导出模块
**Set本身是一个构造函数,用来生成 Set 数据结构**
2、增删改查: 一、定义
1、Decorator,即装饰器,从名字上很容易让我们联想到装饰者模式:
简单来讲,装饰者模式就是一种在不改变原类和使用继承的情况下,动态地扩展对象功能的设计理论 2、ES6中Decorator功能亦如此,其本质也不是什么高大上的结构,就是一个普通的函数,用于扩展类属性和类方法:
代码可读性变强了,装饰器命名相当于一个注释 在不改变原有代码情况下,对原来功能进行扩展
一、var
1、在ES5中,顶层对象的属性和全局变量是等价的,用var声明的变量既是全局变量,也是顶层变量:
顶层对象,在浏览器环境指的是window对象,在 Node 指的是global对象 2、使用var声明的变量存在变量提升的情况
3、使用var,我们能够对一个变量进行多次声明,后面声明的变量会覆盖前面的变量声明:
在函数中使用使用var声明变量时候,该变量是局部的 而如果在函数内不使用var,该变量是全局的
6.Promise
一、定义
1、Promise,译为承诺,是异步编程的一种解决方案,比传统的解决方案(回调函数)更加合理和更加强大
2、状态:pending(进行中)、fulfilled(已成功)、rejected(已失败)
二、优点5.Set Map 一、定义
1、Set是一种叫做集合的数据结构,Map是一种叫做字典的数据结构
2、什么是集合和字典:
集合:是由一堆无序的、相关联的,且不重复的内存结构【数学中称为元素】组成的组合 字典:是一些元素的集合。每个元素有一个称作key 的域,不同元素的key 各不相同 二 数组新增拓展 一、扩展运算符的应用
1、ES6通过扩展元素符...,好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列:
主要用于函数调用的时候,将一个数组变为参数序列 可以将某些数据结构转为数组,能够更简单实现数组复制,数组的合并也更为简洁 2、扩展运算符可以与解构赋值结合起来,用于生成数组。如果将扩展运算符用于数组赋值,只能放在参数的最后一位,否则会报错:
可以将字符串转为真正的数组 一、var
1、在ES5中,顶层对象的属性和全局变量是等价的,用var声明的变量既是全局变量,也是顶层变量:
顶层对象,在浏览器环境指的是window对象,在 Node 指的是global对象 2、使用var声明的变量存在变量提升的情况
3、使用var,我们能够对一个变量进行多次声明,后面声明的变量会覆盖前面的变量声明:
在函数中使用使用var声明变量时候,该变量是局部的 而如果在函数内不使用var,该变量是全局的 二、let
1、let是ES6新增的命令,用来声明变量
2、用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效,不存在变量提:
只要块级作用域内存在let命令,这个区域就不再受外部影响 3、使用let声明变量前,该变量都不可用,也就是大家常说的暂时性死区:
let不允许在相同作用域中重复声明 注意的是相同作用域,下面这种情况是不会报错的,因此,我们不能在函数内部重新声明参数 三、const
1、const声明一个只读的常量,一旦声明,常量的值就不能改变:
const一旦声明变量,就必须立即初始化,不能留到以后赋值 如果之前用var或let声明过变量,再用const声明同样会报错 2、const实际上保证的并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动:
对于简单类型的数据,值就保存在变量指向的那个内存地址,因此等同于常量 对于复杂类型的数据,变量指向的内存地址,保存的只是一个指向实际数据的指针,const只能保证这个指针是固定的,并不能确保改变量的结构不变 四、区别
1、变量提升:
var声明的变量存在变量提升,即变量可以在声明之前调用,值为undefined let和const不存在变量提升,即它们所声明的变量一定要在声明后使用,否则报错 2、暂时性死区:
var不存在暂时性死区 let和const存在暂时性死区,只有等到声明变量的那一行代码出现,才可以获取和使用该变量 3、块级作用域:
var不存在块级作用域 let和const存在块级作用域 4、重复声明:
var允许重复声明变量 let和const在同一作用域不允许重复声明变量 5、修改声明的变量:
var和let可以 const声明一个只读的常量。一旦声明,常量的值就不能改变 五、使用
能用const的情况尽量使用const,其他情况下大多数使用let,避免使用var
总结:
关于数组中forEach() .map().filter().reduce().some().every()的总结 let arr = [1, 2, 3, 4, 5] // forEach遍历数组 arr.forEach((item,index,self)=>{ console.log(item*10) }) // map遍历数组,返回一个新数组 (用作统一修改数组项) let r1 = arr.map((item, index, self) => { return item * 10 })
二、构造函数新增的方法
**关于构造函数,数组新增的方法有如下:
- Array.from()
- Array.of()**
构造函数 array。from 扩展运算符...将一个数组转为用逗号分割的参数序列 **set map 一个类似数组的对象,Array.from将它转为真正的数组。 **
Array.from()
扩展运算符的应用
ES6通过扩展元素符...,好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列
- var let const的区别 var全局变量提升重复 let const 块级作用域 暂存性死区 常量赋值
- 数组新增拓展 扩展运算符...
- 对象新增拓展 上面代码表明,ES6允许在对象之中,直接写变量。这时,属性名为变量名,属性值为变量的值。下面是另一个例子。ES6允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。es6直接写入变量和函数,作为对象的属性和方法,在对象之中,直接写变量,属性名为变量名,属性值为变量值
- 函数新增拓展 arrayfrom 转化为数组
- Set 和 Map 遍历 map键值对 set数据结构不重复数组
- Promise 异步操作 pending fulfilled reject
- Generator
- Proxy 代理
- Module 引入导出模块import export common。js
- Decorator 装饰器 扩展 功能 注释