批改状态:合格
老师批语:
<script>// 1.1 声明和初始化可以分开操作let userName;console.log(userName);// 1.2声明时初始化并赋值let itemName = '手机';console.log(itemName);// 1.3更新userName = '陈大哥';console.log(userName);</script>

// 尽可能使用大写 const APP='商城';// 不能更新,也不能删除// 声明时必须初始化<script>const PRICE = 3980;console.log(PRICE);</script>
2.1 函数不管写到什么地方,总会跑到前面.会自动提升到顶部
2.2 函数的值可以被重写.
2.3匿名函数就可以很好的解决普通函数的提升问题,然后使用常量方法可以有效的解决函数被重写.
let niming = function(a, b) {return a + b;}console.log(niming(2, 4))// 匿名函数才能使用箭头函数niming = (a, b) => {return a + b;}console.log(niming(12, 4))// 如果函数体只有一条语句,可不写return,花括号也不用了niming = (a, b) => a + b;console.log(niming(4, 4))// 如果只有一个参数连小括号都不用要了niming = canshu => console.log("调用成功");niming();// 如果没有参数小括号必须有niming = () => console.log("Success");niming();// 1.箭头函数没有原型属性prototype,不能当构造函数用// 2. 箭头函数中的this始终与它的上下文绑定的</script>
// 自由变量: 即不是函数参数变量也不是私有变量,存在于函数调用上下文中// 闭包: 能够访问自由变量的函数,所以理论上讲,任何函数都是闭包<script>let num = 100;function add(a, b) {// a,b: 参数变量// t: 私有变量let t = 0;// num: 自由变量return t + a + b + num;}function a() {let n = 100;// 这个返回的子函数就是闭包return function () {return n;};}// console.log(n);console.log(a()());function f1() {let a = 1;// a 相对于f1是私有变量,但是相对于返回的匿名函数就是一个自由变量return function () {return a++;};}let f2 = f1();console.log(f2());console.log(f2());console.log(f2());</script>
<script>// 高阶函数: 使用函数为参数或者将函数做为返回值的函数// 1. 回调函数document.addEventListener("click", function () {alert("Hello World~~");});// 2. 偏函数: 简化了声明时的参数声明let sum = function (a, b) {return function (c, d) {return a + b + c + d;};};let f1 = sum(1, 2);console.log(f1(3, 4));// 3.柯里化sum = function (a) {return function (b) {return function (c) {return function (d) {return a + b + c + d;};};};};// 简化了调用参数let res = sum(10)(20)(30)(40);console.log(res);// 4. 纯函数// 完全独立于调用上下文,返回值只能受到传入的参数影响function getDate() {return Date.now();}console.log(getDate());// 是纯函数function add(a, b) {console.log(a + b);}add(1, 2);</script>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号