一、ES6简介
ECMAScript6.0(简称ES6)下一代标准,在2015年6月正式发布。目标:js语言编写复杂的大型应用程序,成为企业级开发语言。规定了浏览器脚本的标准。
二、新增let、const命令 用来声明变量
let声明的变量:1、没有声明提升,必须先声明再使用。2.不能重复定义
为js新增加了块级作用域 ,在块级作用域中声明函数。声明变量。只有在代码块内有效。
const声明变量。声明的常量。一旦声明,常量的值就不能改变。
三、Class
引入Class(类)这个概念
创建对象
ES5
//构造函数法
ES5与ES6的区别prototype对象的constructor属性,直接指向“类”的本身 ,与ES5行为是一致的。
constructor方法是类默认的方法
2、class的继承
使用extents关键字 与ES5修改原型链相比清晰很多
使用 super关键字 ,它在这里表示父类的构造函数,用来新建父类的this对象。
ES5继承,实质是先创建子类的实例对象this,然后再讲父类的方法添加到this上面(Parent.apply(this))
ES6继承,实质是先创建父类的实例对象this(所以必须先调用super方法),然后再用子类的构造函数修改this。
ES6继承方法三、string
新增模板字符串 ``
用`` 反引号来标识起始,用${}来引用变量
字符串自动解析变量
` my name is ${this.name}`
四、Set和Map数据结构
map的forEach()方法
键、值
Map.prototype【在控制台敲】
map.forEach()
map.keys()
Set 集合 构造函数 就有原型 Set.prototype
类数组结构
唯一数组的集合
五、for...of循环,作为遍历所有数据结构的统一方法、
循环可以使用的范围包括数组、Set、和Map结构,某些类数组,以及字符串
不支持对象遍历
私有属性size
案例:
面试典型案例六、新增箭头运算符
var priint = function(msg){
console.log(msg)
}
print("1617");
var print = (msg)=>{console.log(msg)}
print();
var print2 = () =>{
console.log();
}
匿名函数简写形式
//function(){}
varstuList=[{name:"tom1",age:8},{name:"tom2",age:18},{name:"tom3",age:28}];
//按年龄排序
// stuList.sort(function(a,b){
// return a.age > b.age;
// });
stuList.sort((a,b)=>{
returna.age>b.age;
});
document.body.onclick=e=>console.log(e.pageX+" "+e.pageY+this);
varperson={
name:"tom",
say:() => console.log(this);
}
注意! 目前箭头形式匿名函数简写,
函数执行时内部this始终代表window。
七、总结
目前并不是所有的浏览器都兼容ES6全部特性,用Babel可以将ES6码转为ES5代码。
可以用20%的语法,在ES6的日常使用中占80%。
网友评论