欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

变量.常量与函数的基础认知!

程序员文章站 2022-04-08 18:33:39
...

1. 变量与常量的区别

1.变量

  1. <script>
  2. // 1.1 声明和初始化可以分开操作
  3. let userName;
  4. console.log(userName);
  5. // 1.2声明时初始化并赋值
  6. let itemName = '手机';
  7. console.log(itemName);
  8. // 1.3更新
  9. userName = '陈大哥';
  10. console.log(userName);
  11. </script>

变量.常量与函数的基础认知!

2.常量

  1. // 尽可能使用大写 const APP='商城';
  2. // 不能更新,也不能删除
  3. // 声明时必须初始化
  4. <script>
  5. const PRICE = 3980;
  6. console.log(PRICE);
  7. </script>

2. 函数与匿名函数的区别

2.1 函数不管写到什么地方,总会跑到前面.会自动提升到顶部
2.2 函数的值可以被重写.
2.3匿名函数就可以很好的解决普通函数的提升问题,然后使用常量方法可以有效的解决函数被重写.

3. 箭头函数的参数特征

  1. let niming = function(a, b) {
  2. return a + b;
  3. }
  4. console.log(niming(2, 4))
  5. // 匿名函数才能使用箭头函数
  6. niming = (a, b) => {
  7. return a + b;
  8. }
  9. console.log(niming(12, 4))
  10. // 如果函数体只有一条语句,可不写return,花括号也不用了
  11. niming = (a, b) => a + b;
  12. console.log(niming(4, 4))
  13. // 如果只有一个参数连小括号都不用要了
  14. niming = canshu => console.log("调用成功");
  15. niming();
  16. // 如果没有参数小括号必须有
  17. niming = () => console.log("Success");
  18. niming();
  19. // 1.箭头函数没有原型属性prototype,不能当构造函数用
  20. // 2. 箭头函数中的this始终与它的上下文绑定的
  21. </script>

4. 闭包原理

  1. // *变量: 即不是函数参数变量也不是私有变量,存在于函数调用上下文中
  2. // 闭包: 能够访问*变量的函数,所以理论上讲,任何函数都是闭包
  3. <script>
  4. let num = 100;
  5. function add(a, b) {
  6. // a,b: 参数变量
  7. // t: 私有变量
  8. let t = 0;
  9. // num: *变量
  10. return t + a + b + num;
  11. }
  12. function a() {
  13. let n = 100;
  14. // 这个返回的子函数就是闭包
  15. return function () {
  16. return n;
  17. };
  18. }
  19. // console.log(n);
  20. console.log(a()());
  21. function f1() {
  22. let a = 1;
  23. // a 相对于f1是私有变量,但是相对于返回的匿名函数就是一个*变量
  24. return function () {
  25. return a++;
  26. };
  27. }
  28. let f2 = f1();
  29. console.log(f2());
  30. console.log(f2());
  31. console.log(f2());
  32. </script>

5. 四种高阶函数,全部实例演示,并理解回调和纯函数是什么,写出你的答案

  1. <script>
  2. // 高阶函数: 使用函数为参数或者将函数做为返回值的函数
  3. // 1. 回调函数
  4. document.addEventListener("click", function () {
  5. alert("Hello World~~");
  6. });
  7. // 2. 偏函数: 简化了声明时的参数声明
  8. let sum = function (a, b) {
  9. return function (c, d) {
  10. return a + b + c + d;
  11. };
  12. };
  13. let f1 = sum(1, 2);
  14. console.log(f1(3, 4));
  15. // 3.柯里化
  16. sum = function (a) {
  17. return function (b) {
  18. return function (c) {
  19. return function (d) {
  20. return a + b + c + d;
  21. };
  22. };
  23. };
  24. };
  25. // 简化了调用参数
  26. let res = sum(10)(20)(30)(40);
  27. console.log(res);
  28. // 4. 纯函数
  29. // 完全独立于调用上下文,返回值只能受到传入的参数影响
  30. function getDate() {
  31. return Date.now();
  32. }
  33. console.log(getDate());
  34. // 是纯函数
  35. function add(a, b) {
  36. console.log(a + b);
  37. }
  38. add(1, 2);
  39. </script>