博客列表 >变量与函数

变量与函数

王浩
王浩原创
2021年09月28日 15:35:25945浏览
  1. 作业内容:
  2. 1. 变量,常量的区别;
  3. 2. 函数的种类与参数类型;
  4. 3. 作用域与闭包的关系与实现;
  5. 4. [可选]模板字符串与标签函数的使用方式;
  6. 以上要实例演示

变量,常量的区别

常量为只读变量,且在声明时必须要初始化。代码如下:

  1. // 声明a变量并初始化
  2. let a = 10;
  3. // a的值可以被更新
  4. a = 20;
  5. // 这句代码会报错,因为常量必须要初始化
  6. // const B;
  7. // 这里还有个要注意的地方,建议常量名全部用大写。当然小写也是可以的,只不过不便于区分,这也是一个良好的编程习惯
  8. const B = 10;
  9. // 这句代码会报错,因为常量不能被修改
  10. // B = 20;

函数的种类与参数类型

函数一般分为:普通函数、匿名函数(一次性函数和)、

  1. // 普通函数的声明
  2. function add(a, b) {
  3. console.log(a + b);
  4. }
  5. // 函数调用
  6. add(10, 20);
  7. // --------------------------------------
  8. // 匿名函数,一次性
  9. (function (a, b) {
  10. console.log(a + b);
  11. })(10, 30);
  12. // --------------------------------------
  13. // 声明函数变量
  14. let add2 = function (a, b) {
  15. console.log(a + b);
  16. };
  17. // 通过函数名去调用函数
  18. add2(10, 40);
  19. // 可以用胖简头简化
  20. add2 = (a, b) => console.log(a + b);
  21. add2(10, 50);
  22. // 如果参数只有一个,括号也可以不要,但如果没有参数,括号是必须的
  23. add2 = () => console.log("没有参数的函数简化");
  24. add2();
  25. // --------------------------------------

参数类型:形参和实参

  • 形参是放在函数定义的时候,括号内的值,可以没有,也可以有一个或多个
  • 实参是在函数调用的时候放在括号内的值,需要与对应的函数定义参数一一对应。
  • 参数不足的时候,可以用默认值来代替
  • 参数过多的时候,可以用…args来把所有参数压缩到一个数组里。
  • 调用参数,也可以用…arr的方式来调用,这里arr可以是任意数组名。

作用域与闭包

作用域一般有:全局作用域、函数作用域和块作用域
函数体内可以访问全局作用域的变量,即映射
但函数外,则不可以访问函数内的局部变量。

  1. // 声明全局变量a
  2. let a = 10;
  3. function fun1() {
  4. // 声明函数变量b
  5. let b = 20;
  6. // 打印函数变量20
  7. console.log(b);
  8. // 打印全局变量10
  9. console.log(a);
  10. }
  11. // 想要打印函数变量,失败,报错:b is not defined(b未定义)
  12. console.log(b);
  13. fun1();

闭包条件:一、父子函数;二、自由变量

  1. // 父函数
  2. function f(a) {
  3. // 子函数
  4. function s(b) {
  5. let c = 6;
  6. // 这里的a就是子函数的自由变量
  7. return a + b + c;
  8. }
  9. return s;
  10. }
  11. console.log(f(5)(4));
  1. // 闭包函数的经典应用: 计数器
  2. let counter = (function (n) {
  3. return function () {
  4. return n++;
  5. };
  6. })(99);
  7. console.log(counter());
  8. console.log(counter());
  9. console.log(counter());
  10. console.log(counter());

模板字符串和标签函数

  1. // 模板字符串的常规理解
  2. let a = 10,
  3. b = 20;
  4. let str = `${a} + ${b} = ${a + b}`;
  5. console.log(str);
  6. // 标签函数,使用模板字符串为参数
  7. function total(string, ...args) {
  8. return args.reduce((p, c) => p + c);
  9. }
  10. // 调用的时候要用模板字符串作为参数
  11. console.log(total`数量:${10} ${20} ${30}`);
  12. // 打印结果:60
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议