(第二章)进修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(上面有讲注意事项,需控制的东西)