Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何理解javascript中的全局和局部变量

如何理解javascript中的全局和局部变量
EN

Stack Overflow用户
提问于 2013-08-01 02:25:01
回答 4查看 100关注 0票数 5

第一次测试:

代码语言:javascript
运行
AI代码解释
复制
var a = 1;
function b() {
    a = 10;
    return;
    function a() {}
}
b();
alert(a);    // 1

第二次测试:

代码语言:javascript
运行
AI代码解释
复制
var a = 1;
function b() {
    a = 10;
    return;
}
b();
alert(a);    // 10

在第一个测试中,a等于1,尽管我在方法中将它设置为10。在第二个测试中,我将其设置为10,并在输出它时设置为10。这是怎么回事?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-08-01 02:39:38

函数声明function a() {}b函数的本地作用域中声明变量名称a (并为其分配函数)。当您将赋值给a时,您将将该局部变量分配给该局部变量,而不是全局变量。

在应用提升时,您的代码相当于

代码语言:javascript
运行
AI代码解释
复制
var b = function b() {
    var a = function a() {};
    a = 10;
    return;
}
var a = 1;
b();
alert(a);    // 1, obvious now
票数 3
EN

Stack Overflow用户

发布于 2013-08-01 02:28:39

因为提升创建了一个局部变量a,它在尝试为全局变量赋值之前隐藏全局变量。

票数 2
EN

Stack Overflow用户

发布于 2013-08-01 02:33:37

在第一个测试中,创建一个存储在本地变量a中的函数。

代码语言:javascript
运行
AI代码解释
复制
function b() {
    a = 10;
    return;
    function a() {} // can be called using a() inside this function
}

因此,您可以在函数a()中使用b()调用该函数。尝试:

代码语言:javascript
运行
AI代码解释
复制
function b() { 
    a(); // alerts "hi"
    a = 10;
    return;
    function a() { alert("hi"); }
}

现在,在局部变量a中存储数字10,而不是函数。全局变量保持不变,因此外部警报仍然显示1。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17991422

复制
相关文章
javascript当中局部变量和全局变量
2)局部变量和全局变量 浏览器里面 window 就是 global,通常可以省。 nodejs 里没有 window,但是有个叫 global 的。 例 3.2.1 <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> </head> <script> /* 有var无var, 在function外是一样的,都是全局的,在function里面时,var是局部的,而无var时是代表全局的*/ var testVar = "全量"; document.writeln("window.testVar is" + window.testVar+testVar); var testqVar = "全量q"; /*如不屏蔽下句话,程序直接停在这了,因为出错了,不认识testGlobal,得把下一句和下下句换一下位置,就ok了 */ // document.writeln("testGlobal is" + testGlobal); testGlobal = "全量global"; document.writeln("abc is" + abc); var abc; testGlobalInVar = "全量globalInVar"; function testSco() { var lll = "qqq"; var testVar = "局量"; //此testVar非外面的testVar testqVar = "全量qchange"; //此testqVar就是外面的testqVar testGlobal = "全量globalchange"; var testGlobalInVar = "局量global";//此testGlobalInVar非外面的testGlobalInVar /*local variable is stronger than global variable.so "testVar" in the following statement means local variable.*/ document.writeln(testVar); document.writeln(testqVar); document.writeln("testGlobalInVar is " + testGlobalInVar); } testSco(); document.writeln("second test is " + testVar); document.writeln("second testqVar is " + testqVar); document.writeln("testGlobal is " + testGlobal); document.writeln("testGlobalInVar is " + testGlobalInVar); </script>
马克java社区
2019/10/05
5430
javascript当中局部变量和全局变量
JavaScript全局变量与局部变量
在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。
HaC
2020/12/30
7150
js和html全局变量,JavaScript全局变量与局部变量
在学习JavaScript的变量作用域之前,我们应当明确几点:JavaScript的变量作用域是基于其特有的作用域链的。
全栈程序员站长
2022/07/01
3K0
全局变量和局部变量的理解
# 定义全局变量 a = 100 print(a) # def test1(): # a = 200 # print(a) # # # def test2(): # print(a) # 虽然没有定义变量a但是依然可以获取其数据 # # 调用函数 # test1() # test2() # 如果函数内定义了,那么优先使用局部变量,没定义则使用全局变量 # print(a) # 当函数内出现局部变量和全局变量相同名字时,函数内部中的
汪凡
2018/05/29
4490
Javascript全局变量和局部变量
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/130523.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/11
4930
如何理解JavaScript中的this
JavaScript中的 this 对于初学者来说是个难点,对于老手也会困惑。之前有一个小伙伴一直问我this的相关问题,所以今天抽出点时间深入的带大家理解this。希望通过我的理解能够对正在处于对this困惑的你指引方法,让你再也不用怕JavaScript中的this了,让你明白在各种情况下使用this。JavaScript 的 this 关键词是很不一样,因为 JavaScript 本来就不是一门基于类的面向对象编程语言。this 就是一个指针,指向我们调用函数的对象。
ZEHAN
2020/09/23
4.1K0
理解JSP全局变量和局部变量
chao超的搬运文章
2023/10/15
5050
理解JSP全局变量和局部变量
java的局部变量和全局变量_java全局变量和局部变量
  我先验证了一下结果给大家说,上面部分代码运行结果为 0 . 下面部分代码编译执行报错(变量可能未初始化)。
全栈程序员站长
2022/09/24
1.7K0
java的局部变量和全局变量_java全局变量和局部变量
JS–JavaScript变量详解(全局变量、局部变量)
JavaScript也支持不使用var命令,直接使用未声明的变量。但建议用户养成“先声明后使用”的良好习惯。
全栈程序员站长
2022/09/06
8.9K0
JS–JavaScript变量详解(全局变量、局部变量)
Javascript中的局部变量、全局变量的详解与var、let的使用区别
Javascript中的变量定义方式有以下三种方式: 1、直接定义变量,var与let均不写;
code随笔
2020/04/14
3.2K0
Javascript中的局部变量、全局变量的详解与var、let的使用区别
7.4 局部变量和全局变量
2、在一个函数内部定义的变量只在本函数范围内有效,也就是说只有在本函数内才能引用它们,在此函数以外是不能使用这些变量的。
小林C语言
2019/07/12
6690
6.6 局部变量和全局变量
④在一个函数内部,可以在复合语句中定义变量,这个变量只在本复合语句中有效,这种 复合语句也称为“分程序”或“程序块”
小林C语言
2019/08/19
6980
java中的局部变量和全局变量哪个优先_java中成员变量是全局变量吗
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/171760.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/24
1.3K0
局部变量,静态局部变量,全局变量,静态全局变量在内存中的存放区别(转)
     我们先来看内存中的几大区:  内存到底分几个区? 下面有几种网上的理解,我整理一下: 一:  1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。  2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由os回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。  3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的
Linux云计算网络
2018/01/10
5.9K0
学习记录-Python的局部变量和全局变量
当一个函数被调用的时候,就会创建一个局部作用域,在这个函数内的所有变量都存在于该局部作用域内(global的变量除外),该函数返回时,这个局部作用域被销毁,这个局部作用域内的局部变量随之丢失
行走的BUG永动机
2022/10/04
6930
python中全局变量和局部变量详解
python中全局变量和局部变量的最大区别在于局部变量只能通过函数去访问,而全局变量可以直接访问。
狼啸风云
2022/11/18
4480
python中全局变量和局部变量详解
python中全局变量和局部变量的最大区别在于局部变量只能通过函数去访问,而全局变量可以直接访问。
用户7886150
2021/01/23
5230
JavaScript中的async/await的用法和理解
昨天更新的是“JavaScript中的Promise使用详解”,其实也就是说了下基本用法和自己对Promise的理解,可能有错误之处,也欢迎指出。今天就说一说“JavaScript中的async/await的用法和理解”
青年码农
2020/11/11
1.3K0
JavaScript中的async/await的用法和理解
点击加载更多

相似问题

JavaScript中的局部变量和全局变量

20

理解javascript中的本地和全局变量

24

JavaScript函数中的局部变量和全局变量

48

不理解局部变量和全局变量的概念

20

Javascript中的全局和局部变量

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档