(第二章)学习ES6
函数的Rest参数和扩展
//ES5
function sum(x,y,z){
let total = 0;
if(x)total+=x;
if(y)total+=y;
if(z)total+=z;
//`点为tab键上面那个
console.log(`tatal:${total}`);
};
sum(3,4,6);
//ES6 rest参数
function sum2(...m){
let total = 0;
for(i of m){
total+=i;
};
console.log(total)
};
sum2(2,4,6);
//ES6 箭头函数
let = sum3 = (...m)=>{
let total = 0;
for(i of m){
total+=i;
};
console.log(total)
};
sum3(1,3,5,7);
//数组合并(解构)
//ES5
let arr1 = [1,3],arr2 = [5,7];
console.log("concat:"+arr1.concat(arr2));
//ES6
console.log(...arr1,...arr2);
Promise使用
//解决回调地狱问题,使结构更加清晰。
let checkLogin = ()=>{
return new Promise((resolve,reject)=>{
let flag = document.cookie.indexOf("userId")>-1?true:false;
if(flag = true){
resolve({
status:0,
result:true
})
}else{
reject("error")
};
});
};
checkLogin().then((res)=>{
if(res.status == 0){
console.log("login success");
}
}).catch((err)=>{
console.log(`error:${err}`);
});
//多个请求
Promise.all([checkLogin(),getTest()]).then(([res1,res2]))=>{
console.log(res1.result,res2.result);
}
module.exports和ES6 import/export的使用
//导出出有名字的 引用就需要加{};
import {sum} from "./util";
//使用
console.log(sum(1,2));
export let = sum = (x,y){
return x+y;
};
//另一只方式也可以这样引用
import * as util from './util';
//使用
console.log(util.sum(1,2));
AMD/CMD.commonJs和E6对比
- AMD概念:是RequireJs在推广过程中的模板定义的规范化产出。
define(['package/lib],function(lib){
finction foo(){
lib.log('hello word!');
};
return {
foo:foo
}
});
cmd概念:是SeaJs在推广过程中对模块定义的规范化产出。
define(function(require,exports,module){
//通过 require 引入依赖
var $ = require('jquery');
})
commonJs规范 - module.exports(nodejs服务端使用的规范)。
//带名字的输出
exports.area = function(r){
return Math.PI*r*r;
};
//默认输出
module.export= {};
ES6概念:export/import(上面有讲注意事项,需掌握的东西)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。