Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:
实例演示变量与常量的区别;
函数与匿名函数的区别
箭头函数的参数特征
闭包原理与实现并演示它
四种高阶函数,全部实例演示,并理解回调和纯函数是什么,写出你的答案
常量与变量的区别:
1.常量与变量的存储方式是一样的,只不过常量必须要有初始值,而且值不允许被修改,而变量可以无初始值,且可以多次赋值。
<script>
// 1. 变量
// 声明
let userName;
console.log(userName);
// 未初始化变量,输出 undefined
// 声明时并初始化(第一次赋值)
let itemName = "送你一朵小红花";
console.log(itemName);
// 更新
userName = "拆弹专家2";
console.log(userName);
// 2. 常量
// 声明时必须初始化
//未初始化常量,输出 undefined
//const unitPrice = 666;
//unitPrice = 883;
const APP_NAME = "阿里爸爸";
console.log(APP_NAME);
</script>
图示:
函数有函数名,匿名函数没有,需要赋值给一个变量调用
匿名函数可以简化为箭头函数,而普通函数不行
<script>
// 函数
function getName(name) {
return "三国演义的作者是:" + name;
}
// 输出函数
console.log(getName("罗贯中"));
</script>
图示:
<script>
const sum = function(a, b) {
return a + b;
}
// 匿名函数 9 + 6 输出 15
console.log(sum(9, 6));
</script>
图示:
箭头函数是用来简化匿名函数的语法糖
=> 胖箭头
-> 小箭头
没有参数,小括号必须要有
如果函数体只有一条语句,可以不写return和”{}”
let model = ‘MacBook Pro’;
如果函数体只有一条语句,可以不写return和”{}
let demo7 = (id, name, model) => [id, name, model];
只有一个参数, 参数的小圆括号也可以不写
当参数只有一个时,圆括号可以省略,如果没有参数,反而不能省
当有多个参数时, 圆括号必须要写
当有多条语句时,函数体的大括号不能省
如果函数体只有一条语句时,可以省略大括号
<script>
//多参数,多条语句,() 不能省,{} 不能省
let id = '589';
let name ='黄蓉';
let age = 15;
let mail='hr@cnsina.gov.cn'
let demo7 = (id, name, age,mail) =>{(id, name, age,mail)};
console.log(id, name, age,mail);
</script>
图示:
闭包:能访问自由变量的函数
自由变量:存在函数调用的上下文中,不是函数自身的参数变量,也不是函数内部的私有变量
<script>
function a() {
let n = 100;
// 这个返回的子函数就是闭包
return function () {
return n;
};
}
console.log(a()());
</script>
图示:
五、四种高阶函数:回调函数|偏函数|柯里化|纯函数
回调函数:使用函数作为参数传递
// 回调函数
let name = e => e();
let age = () => 'age';
// 把函数age作为参数传递给name,age是回调函数
console.log(name(age));
</script>
图示:
偏函数:简化声明
偏函数: 简化了声明时的参数声明
let sum = function (a, b) {
return function (c, d) {
return a + b + c + d;
};
};
let f1 = sum(1, 2);
console.log(f1(3, 4));
图示:
柯里化:简化调用参数
<script>
let sum = function (a) {
return function (b) {
return function (c) {
return function (d) {
return a + b + c + d;
};
};
};
};
let sum1 = sum(1)(2)(3)(4);
console.log(sum1)
</script>
图示:
纯函数:纯函数独立于上下文,返回值只能接受传入的参数影响
<script>
function add(c, d) {
console.log(c + d);
}
add(122, 252)
</script>
图示: