Es6

Es6 谢支星
文章标签: Es6

什么是ES6 ?

es6的全名是ECMAscript 2015

Es6有哪些新特性?

一、let

1. 没有变量提升

 console.log(a);
    let a = 4;
    // a is not defined

2. 不能重复申明

 let a = 4;
    let a = 5;
    console.log(a);
    // Identifier 'a' has already been declared

3. 临时失效区(暂时性死区)

var a = 5;
    function fn(){
        console.log(a);
        let a = 4;
    }
    fn();
    // a is not defined

二、const

在Es6之前,如果我们想定义常量,通常由程序员自己约定

var NUM = 100;

将所有字母都大写的变量约定为常量,但本质还是变量

let const 声明的变量不挂在window

三、class 类

在Es6之前,我们要定义一个类,只能通过function来模拟

 function Person(){
        this.name = 'xxx';
    }
    Person.prototype.say = function(){

    }
    var person = new Person();

1.语法

class Person{
        constructor(name){
            this.name = name;
        }
        say() {
            console.log(this.name);
        }
    }
    var person = new Person();
    person.say();

四、Set 集合

Set是一个不能有重复元素的集合,重复添加无效

var s = new Set();
    s.add(1);
    s.add(2);
    // s.delete(2)  删除
    // s.clear() 清空
    // s.size() 长度

1.遍历Set

var keys = s.keys(); // 返回一个迭代器
    for(var k of keys){
        console.log(k);
    }

    var values = s.values();
    for(var v of values){
        console.log(v);
    }

    var entries = s.entries(); // 将key和value 组合成一个数组返回
    for(var e of entries){
        console.log(e);
    }

如果我们想在Es6之前使用给数组去重

2.Array数组去重问题

方法一:

var arr = [1,2,3,4,1,1,1];
    function fn(arr){
        var map = {};
        var newArr = arr.filter(function(item, index){
            if(!map[item]){
                map[item] = true;
                return item;
            }
        });
        return newArr;
    }
    fn(arr);

方法二:

var arr = [1,2,3,4,1,1,1];
    function fn(arr){
        var newArr = [];
        for(var i = 0; i < arr.length; i++){
            if(newArr.indexOf(arr[i]) === -1){
                newArr.push(arr[i]);
            }
        }
        return newArr;
    }
    fn(arr);

还能输出{{restrictNumber}}个字符  
  • {{reply.author}}

    {{CommonUtil.formateDate(reply.ac_CommentDate).shortTime}}
  • 回复了{{Comments.author}} :