<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
</head>
<body></body>
</html>
<script>
/*
函数的扩展:
1、函数参数的默认值,如果传入了参数就是传入的.没有就使用默认值
2、rest参数,获取调用函数时.多余的参数与扩展运算符配合使用
注意,rest 参数之后不能再有其他参数(即只能是最后一个参数),否则会报错。
3、箭头函数 => 代表一个函数
特点,简化代码,没有自己的this,会继承父级作用域的this
注意点:
1、箭头函数没有this
2、箭头函数不能new
3、没有arguments对象
*/
// function add(a = 0, b = 0) {
// // 相当于 var a = a || 0, b = b || 0
// // 设置默认值
// return a + b;
// }
// console.log(add(1, 1)); // 2
// function sum(num1, ...nums) {
// // 相当于 let [num1, ...nums] = arguments;
// // 相当于数组的扩展运算符的逆运算
// console.log(num1, nums); // 1 (2) [2, 3]
// let sums = 0;
// for (let v of nums) {
// sums += v;
// }
// return sums;
// }
// console.log(sum(1, 2, 3)); // 5
// 箭头函数 map
// let arr = [1, 2, 3];
// let newArr = arr.map((item, index) => {
// return item + 1;
// });
// console.log(newArr); // [2, 3, 4]
// let person = {
// name: "Jack",
// sayHi() {
// // 这里的this指向person对象
// setTimeout(() => { // 箭头函数内部this会继承父级作用域的this
// console.log(this); // {name: "Jack", sayHi: ƒ}
// console.log(this.name); // Jack 这里的this指向块级作用域 而不是指向全局作用域GO(window) let产生了块级作用域AO
// }, 1000);
// }
// };
// person.sayHi();
// let age = 19;
// let person = {
// age: 18,
// sayHi() {
// setTimeout(() => {
// console.log(this.age); // 18 这里的this指向块级作用域
// }, 1000);
// }
// };
// person.sayHi();
// 因为setTimeout / setInterval是window上的方法 所以处理函数this默认指向window对象
// 在事件处理函数内部arguments[0]指向事件对象
</script>
网友评论