博客列表 >变量.常量与函数的基础认知!

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

xosing的博客
xosing的博客原创
2021年01月09日 17:20:41976浏览

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>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议