<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
//1.扩展运算符
//剩余运算符:把多个独立的合并到一个数组中
//扩展运算符:将一个数组分割,并将多个项作为分离的参数传给函数...具名参数
// const maxNum = Math.max(20,30);
//处理数组中的最大值
//es5 使用apply
const arr = [12,3,44,5,565,67,44]
console.log(Math.max.apply(null,arr));//565
//es6 使用扩展运算法
console.log(Math.max(...arr))//565
//es6的箭头函数
//使用=>来定义 function(){}等于()=>{}
let add = function (a,b) {
return a + b;
}
// let add = (a,b)=>{
// return a+b;
// }
console.log(add(10,20))
//以上更简洁
// let add = (a,b)=>(a+b);
//一个参数
// let add = val =>{
// return val+5;
// }
//以上更简洁
// let add = val => (val+5);
//没有参数
let fn = ()=> 'hello world' + 123;
console.log(fn);//hello world123
//返回一个对象
let getObj = id =>({id:id,name:'walter'});
console.log(getObj(1))//{id:id,name:'walter'}
console.log(getObj)
//es6 箭头函数没有this绑定,箭头函数内部this值只能通过查找上面作用域链来确定,一旦使用箭头函数,就没有作用域链,直接查找最上面的对象
//es5中的this指向:取决于调用该函数的上下文对象
//使用箭头函数的注意事项
//1.使用箭头函数,函数内部没有arguments
let getVal = (a,b) => {
console.log(arguments);//报错
return a+b;
}
//2.箭头函数不能使用new关键字来实例化对象
let Person = ()=>{
};
//function函数 也是一个对象,但是箭头函数不是一个对象,它其实就是一个语法糖
let p = new Person();
console.log(p)//直接报错
</script>
</body>
</html>