ES6新语法

时间:2019-10-01 19:41:23   收藏:0   阅读:103

let/const

  1. let不存在变量提升(变量不允许在声明之前使用)
  2. let不允许重复声明
  3. 在全局作用域中let变量不是window属性,和它没关系
  4. typeof 未被声明的变量不是undefined而是报错(暂时性死区)
  5. let会形成块级作用域

解构赋值

按照一个数据结构,快速解析获取到其中的内容(一般是数组和对象)

let ary=[1,2,3];
let [a,b,c,d=0,e]=ary;
console.log(a, b, c, d);//1,2,3,0,undefined
let obj={name:'xxx',age:25,sex:0};
let {age:ageAA}=obj;//给解构的属性名起别名作为变量
console.log(age);//报错
console.log(ageAA);//25

...拓展、展开、剩余运算符

let ary=[1,2,3]
Math.max(...arg);//=>3
let ary1=[...arguments];//=>类数组转数组

箭头函数

x => (x,y) => x+y;
//相当于
function (x) {
    return function (x,y){
         return x * x;
    }
}
  1. 没有arguments(可以基于...arg获取实参集合)
  2. 没有自己的this,this是继承上下文中的this,箭头函数this不能被改变

``模板字符串

Promise(async/await)

它是ES6中新增加的类 (new Promise),目的是为了管理JS中的异步编程的(它本身是同步的),所以我们也把它称为“Promise设计模式”

new Promise(() => {
    //=>执行一个异步的任务(new Promise的时候,创建Promise的一个实例,立即会把当前函数体中的异步操作执行) =>“Promise是同步的,它可以管理异步操作”
    setTimeout(() => {

    }, 1000);
    console.log(1);//=>先输出1
}).then();
console.log(2);//=>再输出2

class(ES6中创建类的)

class A{
    constructor(){//构造函数 
    }
    a(){//定义在A原型上的方法
    }
}

interator(for of循环)

Map/Set

原文:https://www.cnblogs.com/wangshouren/p/11615853.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!