ES6(ECMAScript2015--ES2015)2015年发布的
ECMAScript 6最新的javascript核心标准;
ES6相对于ES5和ES3有更强大的生产力,大大提高开发效率;
1.实现对象拷贝功能:
ES5
var createAssigner = function(keysFunc,defaults){
return function(obj){
var length = arguments.length;
if(defaults) obj = Object(obj);
if(length<2||obj==null) return obj;
for(var index=1;index<length;index++){
var source =arguments[index],
keys = kesFunc(source),
l = keys.length;
for(var i=0;i<l;i++){
var key = keys[i];
if(!defaults||obj[key]===void 0)
obj[key] = source[key];
}
}
return obj;
};
};
var allKeys = function(obj){
var keys =[];
for(var key in obj) keys.push(key);
return keys;
};
var extend =createAssigner(allKeys);
extend({t:1},{k:2});
ES6
Object.assign({t:1},{k:2});
2.默认参数--为了增强代码的安全性
ES5:
通过||运算符保证txt这个参数是有值的;
function hello(txt){
txt = txt||'hello world';
}
ES6:
function hello(txt='hello world'){
}
3.字符串模板:
(异步操作和服务端异步通信完成对html的一个交互操作过程)
字符串 数据 模板
ES5:
_表示引用了underscore.js第三方库,同时用起来也要调一个方法template,在调另一个方法compiled
来实现这个结果;
var compiled = _.template("hello:<%= name %>");
compiled({name:'moe'});
ES6:(实现了模板和数据的编译过程,而且不依赖任何第三方库)
var name ={moe};
var txt = 'hello ${name}';
4.更多特性--用的频率特别高的:
- 解构赋值 --改变了参数赋值,变量赋值的一种形式,让赋值更加多样性;
- 箭头函数--在函数当参数的时候,我们有了更多的选择;
- Set和Map --数据结构
- 异步操作 --解决回调噩梦的异步操作,promise Generators
-
类与对象 --(ES5中类声明和使用都是通过一个函数里面加类作为构造函数)
ES6中有专业的class命令来声明类,同时有继承的概念; - 模块化 --ES6模块化将成为一种标准;
5.基本技能:
ES6 (学习源码是最快的途径)
源码:
vue.js框架就是用ES6完成源码创作的;
饿了么的ui框架--Element
D3--(处理图表业务和图表动画D3是国际出名的框架)源码是由ES6完成的;
业务:(在实例上还是编译上都是用ES6语言)
vue
React
Angular
面试:
ES6 加分项
6.ES6本身浏览器是不支持;
(开发的ES6的业务代码是不能直接部署到线上让浏览器去访问的,浏览器是不支持,会报错的),为了更好的学习使用Es6:
1.先构建一套支持ES6环境(如何构建支持ES6的构建工具)
构建工具:
gulp
babel
webpack
npm
用ES6写代码的时候,构建工具会帮你自动完成编译、监听、打包,甚至是上线的流程;
2.ES6的基础语法
基础用法 对应实例 注意事项
3.实战演练
知识点 特性 通过实例
搭一套真实的服务器环境,依赖于express、mockjs(去模拟一些数据)做服务器接口、数据;
拿到一个大的项目:
--怎么利用ES6特性把项目做分解并执行完成一直到部署上线;
--代码怎么设计会让项目的可维护性比较强;
功能:
实现期号的自动获取展示、更新、倒计时、开售状态、玩法切换、选号、金额计算、奖金预测、
购物车、机选、清空、删除等等,会用到ES6的很多知识点:块级作用域、数据结构Set、Map、
异步操作promise、对象代理、映射等等。
1.模块化概念
2.工程构建
--css怎么放的、js怎么放置文件的,js之间的关联关系是什么、编译怎么去做,上线,客户端怎么通信;
3.编程经验
网友评论