ES6 标准 - 函数默认参数、箭头函数、剩余参数
/*
* ES6 标准 - 函数默认参数、箭头函数、剩余参数
* 函数默认参数
* * 【理解】
* * 【解析】
* */
function f({a='a的默认值',b='b的默认值'} = {}) {
console.log(a,b)
}
f()
/*
* 函数的变化
* * 【注意】函数参数默认已经定义了,不有再使用let,const声明
* * 【理解】
* * 【解析】
*
* */
// function f1(a = 18) {
// let a = 100; //报错 a has already been declared
// console.log(a)
// }
// f1()
/*
* 扩展运算符、Rest运算符 别称剩余运算符 【...】
* * 【理解】能展开数组
* * 【解析】三种用法
//[1,2,3,4,5] ...a 1,2,3,4,5
//1,2,3,4,5 ...a [1,2,3,4,5]
//[1,2,3,4,5] -> a, b, ...c
*
* */
let arr = ['apple','banana','orange'];
console.log(arr);
console.log(...arr);
// ['apple','banana','orange'] ...['apple','banana','orange'] -> 1,2,3,4,5
function f1(...a) {
console.log(a)
}
f1(1,2,3,4,5)
function f2(...a) {
// console.log(Array.prototype.slice.call(arguments).sort())
console.log(a.sort())
}
f2(1,3,2,5,4)
function f3(a,b,c) {
// console.log(Array.prototype.slice.call(arguments).sort())
console.log(a, b, c)
}
f3(...[1, 8, 9])
function f4(a,b,...c) {
// console.log(Array.prototype.slice.call(arguments).sort())
console.log(a, b, c)
}
f4(...[1, 8, 9, 8, 9, 10])
/*let arr = [1,2,3,4,5]
let arr2 = [...arr]
console.log(arr,arr2)*/
/*
* 箭头函数
* * 【解析】
() => return
() =>{代码块}
* * 【注意】
1.this问题,定义函数所在的对象,不再是运行时所在的对象
2.箭头函数里面没有 arguments,用'...'剩余运算符 let show=(...args) => {}
3.箭头函数不能当构造函数。
* */
function f5(a,b) {
return a+b;
}
console.log(f5(1,2))
let f6 = (a,b) => a+b;
console.log(f6(1,2))
let f7 = (a,b) => {
return a+b;
}
console.log(f7(8,9))
/*
let json = {
id:1,
show:function () {
setTimeout(function () {
console.log(this.id)
},2000)
}
}
json.show() //undefined
*/
let json = {
id:1,
show:function () {
setTimeout(() => {
console.log('定时:' + this.id)
},1000)
}
}
json.show(); //1
let f8 = (...args) => {
console.log(args.length)
}
f8(1,2,3,4,5,)
网友评论