阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JavaScript 全局变量和局部变量

      全局变量;有两种方式可以产生全局变量;

      • 在函数体外定义的变量;
      • 在函数体内部定义的无var的变量;
      • 上面两个说法都不算准确,但是可以先这么记着,后面学习作用域的时候,会仔细分析;

      全局变量的用法:在任何位置都可以调用

      • 直接调用变量名;(不含有同名局部变量和参数时);
      • 通过window.varName 来调用;

      局部变量;局部变量有两种类型;

      • 在函数内部使用var声明的变量;
      • 函数的参数变量

      局部变量的调用方法:

      • 当前函数体内部;

      扩展:在函数体外部不能调用函数体内部的数据,属于闭包的机制,后面会有介绍;

      变量名的优先级(当有多个名字重复的变量时候)

      • 局部变量高于同名全局变量;
      • 参数变量高于同名全局变量;
      • 局部变量高于同名参数变量;

      全部变量和局部变量的特性

      • 忽略块级作用域
      • 全部变量是全局对象的属性
      • 局部变量是调用对象的属性;
      • 作用域链;
        • 内层函数可访问外层函数局部变量;
        • 外层函数不能访问内层函数局部变量;
      • 生命周期:
        • 全局变量;除非被显示删除,否则一直存在;
        • 局部变量:自声明起至函数运行完毕或被显示删除;
        • 回收机制:
          • 标记清除
          • 引用计数;
      目录
      本文目录
      目录