JavaScript作用域

2021-9-30    前端达人

  • 作用域简介

  • JavaScript 作用域:就是代码名字,在某个范围内起的作用和效果。目的是为了提高程序的可靠性,减少命名冲突;

  • 作用域是可访问变量的集合。

  • 在 JavaScript 中, 对象和函数同样也是变量。

  • 在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。

  • JavaScript 函数作用域: 作用域在函数内修改。

  •  变量的作用域:根据作用域的不同我们的变量可以分为全局变量和局部变量

  • 局部作用域

    
                        
    1. function fn() {
    2.     var str = '我是一个局部作用域';
    3. }
    4. console.log(str);    // 这时是访问不到的
    5. // 局部变量:在局部作用域下的变量   或者在函数内部的变量就是局部变量
    6. // 注意:函数的形参也可以看做是局部变量
    7. function fun(aru) {
    8.     var num1 = 50; // num1就是局部变量  只能在函数内部使用
    9.     console.log(num1); // 在这里使用是正确的 但是在函数外面使用报错
    10.     num2 = 70;
    11.     console.log(num2); // num2在这里可以正常输出
    12.     console.log(aru);
    13.     // 首先在fun括号里面传入一个hello 然后在函数内部输出是正确的但是在函数外部输出是错误的
    14. }
    15. //fun(); 
    16. fun('hello');
    17. //console.log(num1);// 报错 num1是局部变量
    18. console.log(num2); // 这里可以输出num2是因为num2是特殊的全局变量
  • 全局作用域:

    全局变量:在全局作用域下的变量称为全局变量,在全局下都可以使用
    // 注意:如果在函数内部没有声明直接赋值的变量也属于全局变量
     

    
                        
    1. var num = 10; //num就是一个全局变量
    2. console.log(num);
    3. function fn() {
    4.     console.log('全局变量在函数内部也可以使用' + num);
    5. }
    6. fn();
  • 作用域链

  • 作用域链:内部函数访问外部函数的变量,采取的是链式查找的方式决定取哪个值 这种结构我们称为作用域链 就近原则

  • 
                        
    1. var num = 10;
    2. function fn() { //外部函数
    3.     var num = 20;
    4.     function fun() { //内部函数
    5.         console.log(num);
    6.     }
    7.     fun();
    8. }
    9. fn();
  • 作用域链总结:

  • 内部函数访问外部函数的时候,采取的是链式查找的方式,一层一层往外查找

  • 先是查找外一层,有没有,没有在往外接着查找,找到了我就输出相应的结果

  • 没有的话继续往上找就可以了,所以这个方法,我们称为作用域链

  • 简单总结就是就近原则,谁离我近我就执行谁


蓝蓝设计建立了UI设计分享群,每天会分享国内外的一些优秀设计,如果有兴趣的话,可以进入一起成长学习,请扫码蓝小助,报下信息,蓝小助会请您入群。欢迎您加入噢~~希望得到建议咨询、商务合作,也请与我们联系。

分享此文一切功德,皆悉回向给文章原作者及众读者.

转自:csdn
免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

分享本文至:

日历

链接

个人资料

蓝蓝设计的小编 http://www.lanlanwork.com

存档