Es6/7/8...新增特性

Es6/7/8…新增特性

1. let和const:
let是定义变量的,const是定义常量的(不可改)
当我们想改const时,以及将它定义成{}形式,(他改的不是本身,改变的是里面的属性)
-. let和var的区别
相同点:他们都是定义变量的关键字
不同点:var有变量提升,允许重复定义变量,块级作用域
let不可以变量提升,不允许重复声明,块级作用域

2.symbol:
有几种类型:number,string,boolean,null,undefined,symbol
symbol:他是定义的值是唯一性
两个symbol类型的值永远不会相等

3. 扩展运算符:
它有两层作用:- 第一个是将数组转换成数据列表 [a,b,c,d]—>a,b,c,d,
例:var result=[…arr1,…arr2]

第二个是将数据列表转换成数组 a,b,c,d--->[a,b,c,d]

展开对象
var result={...obj1,...obj2}
或
result=Object.assign({},obj1,obj2)

4.class类
通过person定义一个类,再通过extends来继承这个类

定义:
class Person {
   constructor(a,b) {
     //构造器
     this.属性=a
   }
  方法1() {}
  方法2() {}
}
继承一个类:
class Child extends Person {
   constructor(a,b) {
     super()  //代表父类
     //构造器
     this.属性=a
   }
  方法1() {}
  方法2() {}
}

5.set和map
*set:*是一个不重复的数组
将set类型的数据转换成数组形式:
var s=new Set()
Array.from(s)
或[…s]
他的方法:add(),has(),delete(),size,clear()
数组去重:[…new Set(arr)]
map:是一个对象,增强了对象key的数据类型,以前只能是字符串,现在对象的属性可以是做任意的数据类型!
他的方法:set(),get(),size(),has(),delete()

6.Promise
主要就是解决异步回调地狱
实现:

function waiting() {
    return new Promise((resolve,reject)=>{
            setTimeout(function() {
                //console.log(2)
                reject('哈哈')
            },2000)      
    })
 }

waiting().then(res=>{
   console.log(1)
   console.log('res:',res)
    console.log(3)
}).catch(error=>{
   console.log('error:',error)
})
.then
.catch
.race
.finally
Promise.all([waiting(),waiting2(),waiting3()])
   .then(res=>{
   }).catch(res=>{
})

7.async/await
串行执行:他是必须先执行第一个异步,将第一个异步的结果返回传递给第二个异步函数,再执行第二个异步的操作过程

8.解构赋值
是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。
例:

数组结构:
let [a, b, c] = [1, 2, 3];
对象解构:
let { foo, bar } = { foo: 'aaa', bar: 'bbb' };

9.箭头函数
基本语法:

var fn1 = function(a, b) {
    return a + b
}
function fn2(a, b) {
    return a + b
}

11.generator
生成器对象是由一个 generator function 返回的,并且它符合可迭代协议和迭代器协议。
语法:

function* gen() { 
  yield 1;
  yield 2;
  yield 3;
}

let g = gen(); 
// "Generator { }"

方法:

Generator.prototype.next()
返回一个由 yield表达式生成的值。
Generator.prototype.return()
返回给定的值并结束生成器。
Generator.prototype.throw()
向生成器抛出一个错误。

12.模板字符串
模板字面量 是允许嵌入表达式的字符串字面量
模板字符串使用反引号 () 来代替普通字符串中的用双引号和单引号

13.for of
在 ES6 中引入的 for…of 循环,以替代 for…in 和 forEach()
for…of 允许你遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)等可迭代的数据结构等。
语法:

for (variable of iterable) {
    statement
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值