函数中变量的作用域以及变量提升

柔光的暖阳◎ 2022-03-24 15:22 326阅读 0赞

函数中变量的作用域以及变量提升

一、变量作用于域

1、函数就是一种特殊的变量
2、 一般函数内部不嵌套,可读性差
3、变量的作用域向上寻找,距离该变量最近的{ },变量的作用域就是在该{ }的范围之内

看简单代码案例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. </head>
  7. <body>
  8. <script>
  9. //函数就是一种特殊的变量
  10. //一般函数内部不嵌套函数,可读性差。
  11. function aa(){
  12. var a =10;
  13. //变量的作用域向上寻找,距离该变量最近的函数的大括号
  14. //变量的作用范围,就是该{}之内的范围.
  15. function bb(){
  16. console.log(a);
  17. }
  18. }
  19. aa();
  20. bb();
  21. /* bb这个函数夹在aa这个函数里面,相当于在函数内部定义了一个变量即她是一个局部变量
  22. ,所以在函数aa外部执行bb()是会报错的。*/
  23. console.log(a);
  24. </script>
  25. </body>
  26. </html>

执行结果:console中显示bb没有定义

2019012213173981.png

二、变量提升

1、 变量会把作用域提升到整个作用域的最前面,赋值还是在原来的位置。
2、全局变量和局部变量同时存在。优先局部

实例一:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. </head>
  7. <body>
  8. <script type="text/javascript">
  9. console.log(a);
  10. var a=10;
  11. //变量会把作用于提升到整个作用域的最前面。
  12. //赋值还是在原来的位置
  13. //相当于
  14. var a;
  15. //console.log(a);得到的值为undefined
  16. a=10;
  17. </script>
  18. </body>
  19. </html>

实例二:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. </head>
  7. <body>
  8. <script type="text/javascript">
  9. console.log(a);
  10. var a=10;
  11. //变量会把作用于提升到整个作用域的最前面。
  12. //赋值还是在原来的位置
  13. //相当于
  14. var a;
  15. //console.log(a);得到的值为undefined
  16. a=10;
  17. </script>
  18. </body>
  19. </html>

执行结果均为undefined;可以赋值代码试一试;

20190122133037806.png

发表评论

表情:
评论列表 (有 0 条评论,326人围观)

还没有评论,来说两句吧...

相关阅读

    相关 javascript函数变量作用

    一 介绍 1、变量的作用域指明变量在程序中的作用范围。 2、在函数外定义的变量可以称为全局变量,它在页面声明此变量后的任何程序段位置都可以使用,使用全局变量,可以实现不同程