在es5中函数参数的默认值:
function add(a,b){
a = a || 10;
b = b || 20;
return a+b;
}
console.log(add());
在es6中
function add(a=10,b=20){
return a+b;
}
console.log(add());
默认的参数,也可以是一个函数
function add(a=10,b=getVal(5)){
return a+b;
}
function getVal(v){
return v+5;
}
console.log(add());
es5中的auguments 与es6中提出的新概念 剩余参数
let book = {
name:"es6",
author:"who",
year:"2022"
}
function pick(obj){
let pResult = Object.create(null);//创建一个空的对象
for(let i = 1;i<arguments.length;i++){//i=1 的目的是去除第一个参数book
pResult[arguments[i]] = obj[arguments[i]];
}
return pResult;
}
let bookdata = pick(book,"name","author");
console.log(bookdata);
剩余参数:由三个点…和一个紧跟着的具名参数指定 例:…args
let book = {
name:"es6",
author:"who",
year:"2022"
}
function pick(obj,...args){
let pResult = Object.create(null);//创建一个空的对象
//剩余参数的引用,就是用来解决es5中arguments的问题
for(let i = 0;i<args.length;i++){
pResult[args[i]] = obj[args[i]];
}
return pResult;
}
let bookdata = pick(book,"name","author");
console.log(bookdata);