ES6核心知识

ES6核心知识

(1)let

使用let声明的变量是块级作用域;可以防止用来计数的循环变量泄露为全局变量(也可以用闭包的知识来实现,如下例)

//泄露情况  
var clickBoxs = document.querySelectorAll('.clickBox');  
for(var i=0;i<clickBoxs.length;i++){  
    clickBoxs[i].onclick = function(){  
        console.log(i);  
    }  
}  
//用闭包实现  
var clickBoxs = document.querySelectorAll('.clickBox');  
for(var i=0;i<clickBoxs.length;i++){  
    clickBoxs[i].onclick = iteratorFactory(i);  
}  
  
function iteratorFactory(i){  
    var onclick = function(e){  
        console.log(i);  
    }  
    return onclick;  
}

(2)const

声明常量

(3)class,extends,super

class声明类,extends实现继承(比原型继承清晰多了,与传统静态类型语言类似),调用super方法将父实例赋值给当前this对象。

class Animal{  
    constructor(){  
        this.type = 'animal';  
    }  
    says(say){  
        console.log('...');  
    }  
}  
  
class Cat extends Animal{  
    constructor(){  
        super();  
        this.type = 'cat';  
    }  
}

(4)箭头函数

箭头函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象

(5)模板字符串

很容易添加一段html到文档中,反引号“标识起始,${}来引用变量

(6)解构

ES6允许按照一定的模式,从数组和对象中提取值,对变量进行赋值

(7)default,rest

//指定默认值  
function animal(type = 'cat'){  
    console.log(type);  
}  
  
//rest  
function animals(...types){  
    console.log(types);  
}  
animals('cat','dog','fish'); //["cat","dog","fish"]

 

欢迎分享本文,转载请保留出处:前端ABC » ES6核心知识

分享到:更多 ()

发表评论 0