批改状态:合格
老师批语:
作业内容:1. 变量,常量的区别;2. 函数的种类与参数类型;3. 作用域与闭包的关系与实现;4. [可选]模板字符串与标签函数的使用方式;以上要实例演示
常量为只读变量,且在声明时必须要初始化。代码如下:
// 声明a变量并初始化let a = 10;// a的值可以被更新a = 20;// 这句代码会报错,因为常量必须要初始化// const B;// 这里还有个要注意的地方,建议常量名全部用大写。当然小写也是可以的,只不过不便于区分,这也是一个良好的编程习惯const B = 10;// 这句代码会报错,因为常量不能被修改// B = 20;
函数一般分为:普通函数、匿名函数(一次性函数和)、
// 普通函数的声明function add(a, b) {console.log(a + b);}// 函数调用add(10, 20);// --------------------------------------// 匿名函数,一次性(function (a, b) {console.log(a + b);})(10, 30);// --------------------------------------// 声明函数变量let add2 = function (a, b) {console.log(a + b);};// 通过函数名去调用函数add2(10, 40);// 可以用胖简头简化add2 = (a, b) => console.log(a + b);add2(10, 50);// 如果参数只有一个,括号也可以不要,但如果没有参数,括号是必须的add2 = () => console.log("没有参数的函数简化");add2();// --------------------------------------
参数类型:形参和实参
作用域一般有:全局作用域、函数作用域和块作用域
函数体内可以访问全局作用域的变量,即映射
但函数外,则不可以访问函数内的局部变量。
// 声明全局变量alet a = 10;function fun1() {// 声明函数变量blet b = 20;// 打印函数变量20console.log(b);// 打印全局变量10console.log(a);}// 想要打印函数变量,失败,报错:b is not defined(b未定义)console.log(b);fun1();
闭包条件:一、父子函数;二、自由变量
// 父函数function f(a) {// 子函数function s(b) {let c = 6;// 这里的a就是子函数的自由变量return a + b + c;}return s;}console.log(f(5)(4));
// 闭包函数的经典应用: 计数器let counter = (function (n) {return function () {return n++;};})(99);console.log(counter());console.log(counter());console.log(counter());console.log(counter());
// 模板字符串的常规理解let a = 10,b = 20;let str = `${a} + ${b} = ${a + b}`;console.log(str);// 标签函数,使用模板字符串为参数function total(string, ...args) {return args.reduce((p, c) => p + c);}// 调用的时候要用模板字符串作为参数console.log(total`数量:${10} ${20} ${30}`);// 打印结果:60
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号