1.点运算在函数中使用
//js是一种弱类型的语言,没有重载机制,当我们重写函数时,会将原来的函数直接覆盖
// 可以利用arguments,来判断传入的实参类型与数量进行不同的操作,然后执行不同的操作
function test1() {
//arguments伪数组集合
//arguments是参数的伪数组集合,没有forEach方法
//可以利用Array.from()伪数组转化为真数组
let datas = Array.from(arguments);
datas.forEach((item, index) => {
console.log(item)
})
}
test1(1, 23, 4)//1 23 4
//ES6中可以使用三点运算在函数中使用
//...将参数序列化
function test(code, ...value) {
console.log('code', code);
//只序列化对应code参数后的位置
value.forEach((item, index) => {
console.log(item, index)
})
}
test(1, 2, 4);//code1 2 4
2.函数参数的默认值
//2.函数参数的默认值
//在形参设置时候,默认传递一个值,此方法被调用未被传参时
//则使用形参的默认值
function sayHellow(name, sex = 'm') {
if (sex == 'm') {
console.log('hellow' + name);
}
if (sex == 'w') {
console.log('no' + name);
}
}
sayHellow('小张');//hellow小张
sayHellow('小李', 'w');//no小李
//sayHellow.length 则返回没有设置形参默认值的个数
3.箭头函数
//3.箭头函数
//匿名函数的简写形式
//箭头函数没有自己的this,箭头函数的this指向他声明时所处的环境中
//格式1
let fun1 = (a, b) => { console.log(a, b) }
fun1('a', 'b');//a,b
//格式2 当形式参数只有一个的时候,小括号可以省略
let fun2 = a => { console.log(a) }
fun2('a');//a
//格式3 当方法体只有一句代码的时候,大括号也可以省略
//并且自动把结果return回来
let fun3 = a => a + 10;
let num = fun3(10);
console.log(num);//20