本文目录

JavaScript 全局变量和局部变量

🌙
手机阅读
本文目录结构

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

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

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

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

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

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

局部变量的调用方法:

  • 当前函数体内部;

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

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

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

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

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

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了