浅析ES6

176 阅读2分钟

一、什么是ES6

ES6是ECMAScript6的缩写,是ECMAScript6在2015年完成的第六次修订,是一个新的标准,它新增了许多特性,提高了开发效率,是一次实质性的升级。

二、ES6特性

1.声明变量的方式

let声明变量和const声明变量,关键字let,常量const,都是块级作用域,不会产生变量提升,存在暂时性死去。但两者也有不同点,let声明的变量可以改变,值和类型都可以改变;const声明的常量不可以改变,一旦声明,不能在重新赋值。

2.导入导出的方式

使用import方法来实现导入,使用export default 来实现导出

image.png

image.png

注:导入和导出必须成套使用,不可与ES5混合使用

3.解构赋值

1.数组的解构赋值


let [a,b,c=3] =[1,2,4];
    console.log(a);//结果:a为1
    console.log(b);//结果:b为2
    console.log(c);//结果:c为4

2.对象的解构赋值


let user = {
    name: "admin",
    pwd: "123456"
};
let { name, pwd } = user;
console.log(name); // "admin"
console.log(pwd); // "123456"

4.Symbol用法

ES5的对象的属性名都是字符串,这样很容易造成属性名冲突,会是数据混淆,但ES6提供一种表示独一无二的值。

let s1=Symbol([1,2]);
let s2=Symbol('aaa');
console.log(s1);
console.log(s2);

注:Symbol是基本数据类型,不能使用new命令

5.Set对象

set数据结构,类似数组。所有的数据都是唯一的,没有重复的值。

主要作用有两个:

1.对数组去重

let arr = ['a', 'b', 'a', 'c', 'd'];
  let newArr = new Set(arr);
  console.log(newArr); //输出 ['a','b','c','d']

2.取数组交集

let arr = ['a', 'b', 'c', 'd'];
  let arr1 = ['a', 'b', 'd', 'e', 'f'];
  let arr2 = new Set([...arr].filter(item => arr1.has(item)));
  console.log(arr2);  //输出['a','b','d']

6.箭头函数

函数定义不再使用关键字function(),而是利用()=>来进行定义

特点

1.语法简单

image.png

2.内含return 语句

单行代码返回当前代码的返回值,多行时返回undefined

7.class类

不再像ES5一样使用原型链实现继承,而是引入Class概念


class Person{//定义了一个Person的类
    constructor(name,age){//constructor是一个构造方法
        this.name = name;//this代表的是实例对象
        this.age=age;
    }
    say(){//这是一个类的方法
        return "我的名字叫" + this.name+"今年"+this.age+"岁了";
    }
}
var obj=new Person("小明",15);

console.log(obj.say());//输出  我的名字叫小明今年15岁了

注意:1.在声明类方法的时候 不要给方法加上function关键字 2.方法与方法之间不要用逗号隔开,否则会报错

8.promise

promise是解决异步的一种方法

promise有三种状态,分别是 pending(进行中)、resolved(成功)、rejected(失败)

Promise.resolve方法: (value) => {}
//返回一个成功的promise对象
Promise.reject方法: (reason) => {}
//返回一个失败的promise对象