精华内容
下载资源
问答
  • 本文实例讲述了Python全局变量与局部变量区别及用法。分享给大家供大家参考,具体如下: 对于很多初学的同学,对全局和局部变量容易混淆,看看下面给大家的讲解相信都应该明白两者的区别了。 定义: 全局变量:在...
  • 主要介绍了Android中的全局变量与局部变量使用小结,全局变量顾名思义就是在整个的类中或者可在多个函数中调用的变量,也称为外部变量,局部变量则是特定过程或函数中可以访问的变量,需要的朋友可以参考下
  • 局部变量与全局变量的概念 以下摘自百度百科: 变量分为局部与全局,局部变量又可称之为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。 全局变量既可以...
  • 全局变量局部变量一些常见问题 3.1全局变量局部变量重名 当全局变量局部变量重名时,局部变量的scope会覆盖掉全局变量的scope,当离开局部变量的scope后,又重回到全局变量的scope。 当全局变量遇上局部变量时...

    目录

    1.什么是全局变量和局部变量

    2.全局变量和局部变量的声明

    2.1 全局变量的声明

    2.2 局部变量的声明

     3.全局变量和局部变量一些常见问题

       3.1全局变量跟局部变量重名

    3.2 零散变量的问题

    3.3. 变量释放问题

    总结:


     

    1.什么是全局变量和局部变量

    全局变量:常常定义在函数外部,拥有全局作用域,即在 JavaScript 代码的任何地方都可以访问。

    局部变量:定义在函数内部,只能在函数中使用的变量,作用范围是从函数开始到结尾,即在{}里。

    在函数内声明的变量只在函数体内有定义,即为局部变量,其作用域是局部性的。需要注意的是,在函数体内声明局部变量时,如果不使用 var 关键字,则将声明全局变量。

    <script>
    		var str1 = "hello1"; //定义一个全局变量
    		function a() {
    			var str2 = "hello2"; //定义一个局部变量
    			str3 = "hello3"; //定义一个全局变量
    		}
    </script>

     此处str1和str3是全局变量,str2为局部变量。

    2.全局变量和局部变量的声明

    2.1 全局变量的声明

    在js中全局变量声明方式分为显示声明和隐式声明

    第一种声明方式:使用var关键字+变量名在函数外部声明就是全局变量,例如:

    var bianliang = "全局变量";

    第二种声明方式:没有使用var关键字声明,直接给变量名赋值,不管是在函数内部还是外部都是全局变量,例如:

    <script>
    		text = "全局变量";
    
    		function bl() {
    			text1 = "我也是全局变量";
    			var text2 = "我是局部变量";
    			console.log(text2); //局部变量只能在函数中使用
    		}
    
    		bl() //结果:我是局部变量
    
    		console.log(text); //结果:全局变量
    		console.log(text1); //结果:我也是全局变量
    		//console.log(text2); //局部变量,在函数外使用会报错
    </script>

    第三种声明方式: 使用window全局对象来声明,全局对象的属性对应也是全局变量,例如:

    window.test3 = 'window全局对象声明全局变量';
    
    console.log(test3);//结果:window全局对象声明全局变量

     

    2.2 局部变量的声明

    声明局部变量一定要使用var关键字,使用var关键字声明变量时,变量会自动添加到距离最近的可用环境中。如果没有写var, 变量就会暴露在全局上下文中, 成为全局变量。如果变量在未声明的情况下被初始化,该变量会自动添加到全局环境。

    <script>
    		function bl() {
    			text1 = "我也是全局变量";//没有使用var 为全局变量
    			var text2 = "我是局部变量";
    			console.log(text2); //局部变量只能在函数中使用
    		}
    </script>

     3.全局变量和局部变量一些常见问题

       3.1全局变量跟局部变量重名

    当全局变量跟局部变量重名时,局部变量的scope会覆盖掉全局变量的scope,当离开局部变量的scope后,又重回到全局变量的scope。

    <script>
    		var str = "我是全局变量";
    
    		function b() {
    			var str = "我是局部变量";
    			console.log(str); //结果:我是局部变量
    		}
    		b();
    		console.log(str);//结果:我是全局变量
    </script>

     当全局变量遇上局部变量时,怎样使用全局变量呢?用window.globalVariableName。

    <script>
    		var a = 1; //全局变量
    		! function b() {
    			var a = 2; //局部变量a在这行定义
    			console.log(window.a); //a为1,这里的a是全局变量哦!
    			console.log(a); //a为2,这里的a是局部变量哦!
    		}()
    		console.log(a); //a为1,这里并不在function b scope内,a的值为全局变量的值
    </script>

    3.2 零散变量的问题

    Javascript在执行前会对整个脚本文件的声明部分做完整分析(包括局部变量),从而确定变量的作用域。所以Javascript允许在函数的任意地方声明变量,无论在哪里声明,效果都等同于在函数顶部进行声明。怎么理解呢?看下面一个例子:

    <script>
    		var str = "我是全局变量";
    		! function b() {
    			console.log(str); //结果:undefined
    			var str = "我是局部变量";
    			console.log(str); //结果:我是局部变量
    		}()
    </script>

    为什么不是: 我是全局变量 和 我是局部变量?
    原因很简单:对JavaScript而言,只要变量是在同一个范围(函数)里,就视为已经声明,哪怕是在变量声明前就使用。上面的代码相当于:

    <script>
    		var str = "我是全局变量";
    		! function b() {
    			var str; //系统自动赋值为 str = undefined
    			console.log(str); //结果:undefined
    			var str = "我是局部变量";
    			console.log(str); //结果:我是局部变量
    		}()
    </script>

    3.3. 变量释放问题

    请看下面的代码:

    <script>
    		var a = "hello"; //全局变量
    		window.b = "word"; //全局变量
    		delete a;
    		delete b;
    		console.log(typeof a); //结果:string
    		console.log(typeof b); //结果:undefined
    		! function b() {
    			var c = 1; //局部变量
    			d = 2; //全局变量
    			delete c;
    			delete d;
    			console.log(typeof c); //结果:number
    			console.log(typeof d); //结果:undefined
    		}()
    </script>

    结论:

    • 使用 var 创建的变量不能使用 delete 释放内存。
    • 不使用 var 创建的变量可以使用 delete 释放内存。

    总结:

    1.在过程体内(包括方法function(){},对象Object o={})内的对象)加var保留字则为局部变量,其他情况下都是全局变量(无论是否使用var。不进行声明而直接使用全局变量会报错(可以隐式声明),而局部变量先使用后声明则不会报错,只是值为undefined。

    2.全局变量跟局部变量重名时,局部变量的范围会覆盖掉全局变量的范围,当离开局部变量的范围后,又重回到全局变量的范围。(若想指定是全局变量可以使用 window.globalVariableName。

    3.Javascript允许在函数的任意地方声明变量,无论在哪里声明,效果都等同于在函数顶部进行声明

    4.使用 var 创建的变量不能使用 delete 释放内存,其他方式创建的变量可以使用 delete 释放内存。

     

    一般来说全局变量所带来的 bug 问题非常多,所以最好尽量少用全局变量。另外,声明变量最好带 var, 不应使用带 var 的链式赋值,在函数体内定义变量时,最好把变量声明放在顶部,防止出现变量没有被定义就被使用的逻辑错误。

    展开全文
  • UINT8 acc_tab_sta = acc->acc_tab_sta; static void hmi_adas_root_callback_on_status(ndm_node_t *self, ndm_evt_t *in_status) { UINT8 acc_tab_sta = 0; switch (NodeMsgGetEvent(in_status)) ...
  • 全局变量与局部变量两者的本质区别就是在于作用域 用通俗的话来理解的话, 全局变量是在整个py文件中声明,全局范围内都可以访问 局部变量是在某个函数中声明的,只能在该函数中调用它,如果试图在超出范围的地方...

    全局变量与局部变量两者的本质区别就是在于作用域

    用通俗的话来理解的话,

    全局变量是在整个py文件中声明,全局范围内都可以访问

    局部变量是在某个函数中声明的,只能在该函数中调用它,如果试图在超出范围的地方调用,程序就爆掉了

    如果在函数内部定义与某个全局变量一样名称的局部变量,就可能会导致意外的效果,可能不是你期望的。因此不建议这样使用,这样会使得程序很不健全

    直接来看几个例子来理解全局变量和局部变量的区别吧:

    Demo1:

    1. **def fun(x): **
    2. ** y=2 **
    3. ** print(“乘法的运行结果:”,x*y) **
    4. **num1=1 **
    5. **print(“初始num1=”,num1) **
    6. **fun(num1) **
    7. **print(“y的值是:”,y) **

    运行结果:

    报错的原因是因为试图访问局部变量,但是访问的地方不在该变量y的作用域中

    Demo2:

    1. **def fun(): **
    2. ** num1=2 **
    3. ** print(“函数内修改后num1=”,num1) **
    4. **num1=1 **
    5. **print(“初始num1=”,num1) **
    6. **fun() **
    7. **print(“运行完函数后num1=”,num1) **

    运行结果:

    可以看到在函数内部对全局变量的修改后,在函数执行完毕,修改的结果是无效的,全局变量并不会受到影响

    再看:

    Demo3:

    1. **def fun(): **
    2. ** num1*=2 **
    3. ** print(“函数内修改后num1=”,num1) **
    4. **num1=1 **
    5. **print(“初始num1=”,num1) **
    6. **fun() **
    7. **print(“运行完函数后num1=”,num1) **

    运行结果:

    报错了。这是因为在fun()函数使用了局部变量num1,它只是个跟全局变量同名的局部变量,使用前还是要赋值,因此再次强调不要这样使用

    global关键字

    如果真的想要在函数体内修改全局变量的值,就要使用global关键字

    Demo4:

    1. **def fun(): **
    2. ** global num1 **
    3. ** num1=2 **
    4. ** print(“函数内修改后num1=”,num1) **
    5. **num1=1 **
    6. **print(“初始num1=”,num1) **
    7. **fun() **
    8. **print(“运行完函数后num1=”,num1) **

    运行结果:

    使用global关键字就是告诉python编译器这个变量不是局部变量而是全局变量,其实有点像是"引用"的意思

    nonlocal关键字

    再看看另一个跟变量相关的关键字nonlocal,字面意思就是指当前的这个变量不是局部变量。nonlocal是Python3.0中新增的关键字,python2.x不支持

    先来看看下面这段代码

    1. **def fun(): **

    2. ** num2=3 **

    3. ** def fun2(): **

    4. ** num2*=2 **

    5. ** print(“num2=”,num2) **

    6. ** return fun2() **

    7. **fun() **

    运行结果:

    错误的原因跟前面的差不多,就是使用了未定义的局部变量,然而num2也不是全局变量,只是fun2函数的外层变量,强行使用global定义num2的话同样会报错(不信你试试)

    这时候需要使用nonlocal关键字:

    1. **def fun(): **

    2. ** num2=3 **

    3. ** def fun2(): **

    4. ** nonlocal num2 **

    5. ** num2*=2 **

    6. ** print(“num2=”,num2) **

    7. ** return fun2() **

    8. **fun() **

    运行结果:

    如此,程序就能正常执行

    展开全文
  • Axure学习日志之全局变量与局部变量

    千次阅读 2019-05-31 09:04:52
    全局变量: 顾名思义,全局,即可理解为全部软件内有效,编程语言类似。 首先,全局变量在哪儿,这是个问题 在这 可以设置多个全局变量,加号添加,双击重命名,双击默认值设置默认值 如图建立两个全局变量...

    打开Axure,不多说了hia!

    全局变量:

    顾名思义,全局,即可理解为全部软件内有效,与编程语言类似。
    首先,全局变量在哪儿,这是个问题
    在这
    在这里插入图片描述
    可以设置多个全局变量,加号添加,双击重命名,双击默认值设置默认值
    如图建立两个全局变量haha和heihei
    在这里插入图片描述

    新建一个椭圆形元件,在其中加入一个文本标签
    在这里插入图片描述
    设置点击椭圆元件改变文本标签的值,设置文本为变量值,即可看到设置好的全局变量的选项,全局变量在全局Axure有效。
    在这里插入图片描述

    Fx与局部变量:

    顾名思义法,局部,即可理解为在一个范围里有效,而在Axure中局部变量的范围是一个动作。

    找找局部变量都在哪儿?
    在这里插入图片描述
    只要有设置文本为值的地方就有fx,有fx的地方就有局部变量

    在这里插入图片描述
    先提一下上面的插入变量或函数,也就是俗称的公式
    在这里插入图片描述
    如上图,【【】】为Axure公式的计算方式,在[[]]中的数值可以进行计算,[[]]外只能进行字符串连接。
    举个例子:

    [[haha]]*[[heihei]]  显示 7*8
    [[haha*heihei]]      显示  56
    

    局部变量在下,和全局变量一样可以进行添加双击重命名等操作,但是作用域局限,只对此次动作起作用。
    在这里插入图片描述
    ok,end。

    局部变量和全局变量的应用:

    在验证过程中的应用:
    利用全局变量可以存储用户名和密码信息,格式
    (name:password)(name1:password1)…

    通过局部变量可以进行验证,用户名是否正确
    只需要建立一个局部变量n提取出name的值,和全局变量进行比较。

    比如用户名正确,再对密码进行判断,但是要建立两个局部变量得到name和password的值,
    并且符合(name:password)的格式,用[[]]实现。

    展开全文
  • 在C语言编程中,全局变量局部变量命名冲突的问题。 编程学习者的迷惑的地方!
  • 全局变量与局部变量重名的情况

    千次阅读 2020-03-04 23:15:12
    全局变量局部变量出现重名时, 在局部变量作用域内,全局变量失效

    当全局变量和局部变量出现重名时, 在局部变量作用域内,全局变量失效
    如需要访问全局变量,则需在变量名前加::

    展开全文
  • 全局变量与局部变量

    千次阅读 2019-03-18 22:22:57
    全局变量与局部变量的区别。
  • 全局变量与局部变量的区别

    千次阅读 2019-01-26 20:53:53
    接下来,利用python软件输出结果详细说明全局变量与局部变量的区别与用法。 全局变量:能被当前文件中所有python代码访问【先声明赋值,后使用变量】 users='admin' #声明一个全局变量 # 普通代码中使用 print...
  • 1.作用域不同:全局变量的作用域为整个程序,它的声明在后面的各个部分都可以发生作用,而局部变量仅仅为定义的某个函数。且局部变量只能在局部进行使用。 2.优先级不同:局部变量优先于全局变量。 3.生命周期不同:...
  • C++中定义的函数,必须有输入参数(或者说是,形参列表)。...在main函数中,当局部变量全局变量同时存在的时候,优先引用局部变量,而不去引用全局变量。 "::"这个符号,可以直接来操作全局变量的。
  • 主要介绍了Vue全局变量局部变量,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • # 定义一个全局变量 name="tom" # 函数中定义一个局部变量 def test(): name="jerry" print("函数中访问name:",name) test() #运行函数 print("函数外访问name:",name) 输出结果: 函数中访问name: jerry ...
  • JSP中全局变量与局部变量的区别

    千次阅读 2017-01-31 16:34:16
    问题:执行如下代码,反复刷新JSP页。 ...//全局变量  %>    int y = 10; //局部变量  out.println("x = " + x++ + "");  out.println("y = " + y++ + "");  %>
  • c#中全局变量与局部变量的设置

    千次阅读 2017-03-06 19:29:52
    去年写的一段代码,但是今年又翻过来改正代码,吃了很大亏  //全部变量  SqlConnection conn = Connection.connection(); ... 如上面的一段代码,设置操作数据库的对象为全局变量,之后
  • 全局变量与局部变量的定义关系

    千次阅读 2017-05-12 14:45:52
    面试题如下: int i=1 ;...局部变量是可以和全局变量重名的,但是局部变量就相当一个地头蛇,在一个函数或者循环中可以屏蔽全局变量,使全局变量失效,因此,局部变量i是随机数,赋值给自己还是随机数。
  • python中全局变量与局部变量

    万次阅读 多人点赞 2019-03-01 15:27:17
    python中全局变量与局部变量 标签: python 局部变量就是定义在一个函数体内部的变量 全局变量是定义在外面的变量 比如: a = 1 def f(): b = 2 其中a就是全局变量,而b是局部变量局部变量只在函数体内部...
  •  在写代码时,一定会用到变量,但是变量有全局变量局部变量的,那么什么时候用全局变量什么时候用局部变量呢?也许你阅读了一定的书籍,书本上也有记载,估计看会儿就能理解,但是实际我们写代码时,一定会有出错...
  • 1.可变类型不可变类型 可变类型,值可以改变: 列表 list 字典 dict 不可变类型,值不可以改变: 数值类型 int, long, bool, float 字符串 str 元组 tuple ...2.修改全局变量 ... 全局变量...
  • Python中都全局变量局部变量

    千次阅读 2020-10-31 17:14:44
    局部变量是函数中的占位符,与全局变量可能重名,但不是同一个变量 函数运行结束后,局部变量被释放 可以使用global保留字在函数中使用全局变量 看下面两个例子: 例1: 全局变量s=100,局部变量s=3628800,函数...
  •  局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量...
  • 主要涉及了java中的局部变量全局变量,就二者的含义、生存时间和创建位置作了介绍,需要的朋友可以参考下。
  • C++中全局变量与局部变量

    千次阅读 2018-07-11 23:19:13
     由编译器自动分配和释放,存放函数的参数值,局部变量等  内存分配是连续分配的,当申请变量时,编译器自动在其尾部分配一块内存 1.2、堆区  由程序猿分配和释放(需要指明所需内存大小),如果忘记或是不...
  • 主要介绍了Python3.5局部变量与全局变量作用域,结合实例形式分析了Python3.5局部变量与全局变量的定义、作用域及相关操作注意事项,需要的朋友可以参考下
  • 本篇文章是对在C语言中局部变量与全局变量在内存中的存放位置进行了详细的分析介绍,需要的朋友参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 378,738
精华内容 151,495
关键字:

全局变量与局部变量