因为js中只用两种作用域,也就对应这两种类型的变量。

1:全局变量 ->  在全局范围内都是可以访问的。

2:局部变量 ->  只能在当前作用域进行访问。

在js中有一种特殊的情况,在函数作用域内声明的变量,没有用var字,那么该变量是一个全局变量。

再看一个例子:

总结:

1:子集作用域内是可以访问父级作用域(或上一级)的变量,但是父级作用域是不能访问到子集作用域内的变量。

2:在访问某一个变量的时候,先在当前作用域查找是否有该变量,就近原则,如果没有,往上一级查找(父级),如果还没有,接着往上查找,直到全局作用域,如果还没有,返回的就是一个undefined。

3:没有使用var声明的变量是全局变量,不推荐使用。

4:变量超出作用域之后就会被销毁,全局变量在关闭页面或关闭浏览器时才会被销毁,所以尽量少使用全局变量,会占内存空间的。

----------------------------------------------------------------------

补充:什么时候变量的值会是undefined?

有两种情况:

1:没有该变量,也就是没有定义该变量

2:定义了该变量,但是没有给该变量赋值。

转载于:https://blog.51cto.com/11871779/2120006

js中的全局变量和局部变量相关推荐

  1. js中避免全局变量冗杂的解决方式

    1.在开发前端当中,经常会定义一些全局变量,想在整个js中的方法都能使用,但是在一个js中定义全局变量后,会出现在其它js冗杂的问题,所以对变量的定义还得注意重名等问题. 解决方式: 在js中定义匿名 ...

  2. 微信小程序app.js中的全局变量globalData改变,如何通知其它页面界面显示改变,小程序中如何在其他页面中监听到globalData中值的变化

    微信小程序app.js中的全局变量globalData改变,如何通知其它页面界面显示改变,小程序中如何在其他页面中监听到globalData中值的变化 在小程序中,我们一般在app.js的onLaun ...

  3. 在python中、关于全局变量和局部变量_在Python中,关于全局变量和局部变量,以下选项中描述不正确的是...

    [单选题]Python文本处理方向的第三方库是 [单选题]哪个选项的描述是正确的? [单选题]以下选项中属于Python语言中合法的二进制整数是 [单选题]以下说法错误的是: [单选题]下面属于B2B ...

  4. python中的全局变量与局部变量

    全局变量与局部变量两者的本质区别就是在于作用域,全局变量即在整个程序中,任何地方都可以访问.而局部变量,试着在函数内部声明的变量,当函数运行结束时,局部变量就会被内存释放. 例子: 1 name='z ...

  5. 函数体中的全局变量与局部变量

    首先看一道笔试题: 1 var a = 100; 2 function testResult(){ 3 var b = 2 * a; 4 var a = 200; 5 var c = a / 2; 6 ...

  6. 全局变量_Python函数中的全局变量与局部变量

    # a,b变量是全局变量,在整个py文件中都可以访问 a = 11 b = 12 # 定义一个函数 def first(): # 这个变量是函数内部定义的变量,属于局部变量,只能在函数中使用 c = ...

  7. python获取程序文件中的全局变量和局部变量的函数

    目录 global()和locals()函数 (一)演示示例 (二)程序执行结果 (三)简单使用 (四)参考资料 global()和locals()函数 使用global()可以获取Python中的全 ...

  8. Java中的全局变量和局部变量——简单区别

    全局变量 Java中不能定义全局变量,在一个类中的公共.静态变量就相当于这个类的全局变量. 这使得全局变量被封装在了类里,保证了安全性. 局部变量 Java中方法体或某个代码块中声明的变量被称为局部变 ...

  9. 全局变量局部变量ScriptCase中的全局变量、局部变量

    工作之余抽点时间出来写写博文,希望对新接触的朋友有帮助.今天在这里和大家一起学习一下全局变量局部变量 在做一套应用的时候,有时候须要用到全局变量,比如:登录胜利后就将用户名保存上去,然后在每个页面里都 ...

最新文章

  1. MySQL / 可重复读到底是怎么实现的?图解 ReadView 机制
  2. IIS 8.5配置.net网站[花了半个多小时]
  3. 排序算法02--冒泡排序
  4. B 站神曲 damedane:精髓在于换脸,五分钟就能学会
  5. css代码颜色十六进制大全
  6. 第一个python程序-判断登陆用户名和密码是否正确
  7. 20180810 突然发现自己不小心跑到了数据分析呈现岗位
  8. access vba代码全部丢失_Access2016由于无法读取数据库中所含的VBA工程,因此无法打开此数据库。只有先删除VBA工程,然后才能打开数据库...
  9. 合取范式 (CNF)
  10. ecshop手机支付宝支付篡改金额BUG
  11. Mono.Cecil DefaultAssemblyResolver.Dispose
  12. RPG Maker MV 遇敌对战
  13. 前端学习:浏览器缓存方式有哪些(cookie、localstorage、sessionstorage)
  14. 玩转你的开发板-1.4.第1季第4部分-朱有鹏-专题视频课程
  15. 【硬核】年底绩效面谈,涨薪,老板给加了1万块
  16. 最小生成树图之-Prim算法和Kruskal算法
  17. 同态加密:分圆多项式简介
  18. Week3:[任务三] nn网络层-池化、线性、激活函数网络层
  19. 一个HTTP请求的一生
  20. (Java实现) 自然数的拆分

热门文章

  1. fft的c语言和matlab对比_Matlab系列之程序控制
  2. Android Volley完全解析3:定制自己的Request
  3. 自定义控件:旋转菜单
  4. React Native
  5. 第三章 PLSQL Developer 安装前oracleclient客户端的配置,在用plsql 连接oracle服务器
  6. gamma分布python代码_Python sympy.stats.NormalGamma()用法及代码示例
  7. Spring常见注解
  8. mysql外键约束脚本_如何在MySQL中设置外键约束
  9. 将你的Apache速度提高十倍的经验分享
  10. SpringBoot——项目搭建、整合Mybatis、整合redis(集群)