1. 函数参数默认值,注意:具有默认值的参数要写到后边。
正常情况下,我们
举一个例子吧:
function add(n1, n2) {
return n1+n2;
}
console.log(add(1,3));
结果肯定是4;
如果我们不给n1赋值,结果就是NaN
这里我们可以添加一个默认值给n1和n2
function add(n1=3, n2=3) {
return n1+n2;
}
console.log(add());
如果不传参数,就会以默认值的形式输出,结果:
2. args参数是一个纯数组对象,可以替代类数组argumens,
首先,使用arguments写1到5的加法。结果是15。
function add() {
let sum = 0;
for (let i=0; i<arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
console.log(add(1,2,3,4,5));
我们可以使用args来快速实现,结果也是15;
function add(...args) {
let sum = 0;
args.forEach(function(item) {
sum += item;
})
return sum;
}
console.log(add(1,2,3,4,5));
3. 箭头函数
作用,简化回调函数, 箭头函数中的this是函数声明时的所在对象
简化回调函数,体现在:
let sum = function(item1, item2) {
return item1+item2;
}
可以简写为:
let sum = (item1, item2) => item1+item2;
经典的,随机函数:
let rand = function(min, max) {
Math.round(Math.random() * (max-min) + min);
}
简写为:
let rand = (min, max) => Math.round(Math.random() * (max-min) + min);
典型的冒泡排序sort():
let arr = [1,5,-56,-99,34,23,57,-4,0];
arr = arr.sort(function (a,b) {
return a-b;
})
console.log(arr);
可以简写为:
let arr = [1,5,-56,-99,34,23,57,-4,0];
arr = arr.sort((a,b) => a-b);
console.log(arr);
结果依然为:
箭头函数中的this是函数声明时的所在对象,体现在:
举个例子:从函数里边调用obj,如果使用this直接调用,调用的是window,而不是函数声明时所在对象
let obj = {
a:1,
b:2,
fun: function() {
setTimeout(function() {
console.log(this);
},100)
}
}
obj.fun();
结果:
如想调用obj就加上:let that = this;
let obj = {
a:1,
b:2,
fun: function() {
let that = this;
setTimeout(function() {
console.log(that);
},100)
}
}
结果为
使用箭头函数很容易实现:并且,this的指向就是函数声明所在对象。
let obj = {
a:1,
b:2,
fun: function() {
setTimeout(() => {
console.log(this);
}, 100);
}
}
箭头函数若执行多行语句需要加上花括号:
就是复杂化随机函数,更加鲜明
let rand = (min, max) => {
let n = Math.random() * (max-min) +min;
n = Math.round(n);
return n;
}