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

更多相关文章

  1. js 基础语法知识汇总
  2. JavaScript 基本了解
  3. JavaScript快速入门
  4. PHP-03变量与常量
  5. PHP变量类型及类型转换
  6. php常用字符串函数
  7. 项目中全局变量的灵活用法
  8. 接口管理进阶-环境变量的使用
  9. 你知道 JavaScript 中的 Arguments 对象都有哪些用途吗?

随机推荐

  1. 常用的android权限配置和常用工具代码
  2. android 设置 永不休眠
  3. Android 使用Json实现服务器与客户端数据
  4. Android(安卓)Snippet
  5. android AppCompatEditText 样式(线条粗细
  6. Android欢迎页的逻辑实现
  7. Android背景渐变色效果
  8. Android 底部地址选择弹框
  9. android 常用代码
  10. Unable to resolve target 'android-5'