为什么在函数中无法访问我的全局变量?

阿尔弗雷多·奥索里奥(Alfredo Osorio)

我以为myColor可以从sayColor()本地上下文访问它,但是即使在第一个警报后声明myColor也不可以。为什么?

var myColor = "blue";
function sayColor() {
    alert(myColor); //undefined expected blue
    var myColor = "green";
    alert(myColor); //green
}
sayColor();
寂寞的一天

这里发生的事情称为“吊装”。使用var和函数语句的变量声明“悬挂”在其包含范围的顶部。(请注意,从ES6开始,let并且const具有不同的语义。)因此,就浏览器而言,您的代码实际上如下所示:

var myColor = "blue";
function sayColor() {
    var myColor;
    alert(myColor); //undefined expected blue
    myColor = "green";
    alert(myColor); //green
}
sayColor();

MDN

变量的每个定义实际上是在变量范围的顶部声明了变量,并在定义所在的位置进行了赋值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的函数和循环无法访问我的全局变量?

来自分类Dev

为什么即使稍后在代码中定义了局部变量,全局变量也无法访问

来自分类Dev

为什么我不能访问全局变量中的值

来自分类Dev

为什么我无法读取嵌套函数中全局变量的变化?

来自分类Dev

Angular 2“ this”无法访问嵌套函数中的全局变量

来自分类Dev

在C / C ++程序中,可以定义某些函数无法访问的全局变量吗?

来自分类Dev

无法访问打字稿中的全局变量

来自分类Dev

luabind:无法访问全局变量

来自分类Dev

为什么在此片段中无法访问我的onClick方法

来自分类Dev

为什么我不能访问该全局变量?

来自分类Dev

为什么我的包含函数无法获取全局变量值?

来自分类Dev

为什么我的函数不将值返回全局变量?

来自分类Dev

为什么我不能在PHP函数中访问我的私有变量?

来自分类Dev

无法从类构造函数中访问全局变量

来自分类Dev

无法访问PHP中的全局变量-“致命错误:在非对象上调用成员函数query()”

来自分类Dev

在 JavaScript 中,为什么这个全局变量在我的函数中未定义?

来自分类Dev

requirejs:为什么模块中定义的函数无法访问require()中的局部变量,我该如何实现?

来自分类Dev

为什么这个全局函数不能访问我的全局对象?

来自分类Dev

为什么我的本地网站无法访问我的本地REST服务?

来自分类Dev

Thymeleaf + HTML5-为什么我无法访问我的JavaScript?

来自分类Dev

无法访问更新的全局变量的值

来自分类Dev

为什么我无法在jquery函数中访问变量

来自分类Dev

为什么无法访问我当前添加的列表框项目?

来自分类Dev

为什么无法访问我当前添加的列表框项目?

来自分类Dev

为什么在使用$ new时无法访问我的范围属性?

来自分类Dev

为什么在Ubuntu 14.04上无法访问我的Bq Ubuntu手机?

来自分类Dev

在JavaScript中创建全局变量,控制台无法访问

来自分类Dev

nodejs:mysql 无法访问连接查询回调中的全局变量

来自分类Dev

无法访问 citrus-context.xml 中的全局变量

Related 相关文章

  1. 1

    为什么我的函数和循环无法访问我的全局变量?

  2. 2

    为什么即使稍后在代码中定义了局部变量,全局变量也无法访问

  3. 3

    为什么我不能访问全局变量中的值

  4. 4

    为什么我无法读取嵌套函数中全局变量的变化?

  5. 5

    Angular 2“ this”无法访问嵌套函数中的全局变量

  6. 6

    在C / C ++程序中,可以定义某些函数无法访问的全局变量吗?

  7. 7

    无法访问打字稿中的全局变量

  8. 8

    luabind:无法访问全局变量

  9. 9

    为什么在此片段中无法访问我的onClick方法

  10. 10

    为什么我不能访问该全局变量?

  11. 11

    为什么我的包含函数无法获取全局变量值?

  12. 12

    为什么我的函数不将值返回全局变量?

  13. 13

    为什么我不能在PHP函数中访问我的私有变量?

  14. 14

    无法从类构造函数中访问全局变量

  15. 15

    无法访问PHP中的全局变量-“致命错误:在非对象上调用成员函数query()”

  16. 16

    在 JavaScript 中,为什么这个全局变量在我的函数中未定义?

  17. 17

    requirejs:为什么模块中定义的函数无法访问require()中的局部变量,我该如何实现?

  18. 18

    为什么这个全局函数不能访问我的全局对象?

  19. 19

    为什么我的本地网站无法访问我的本地REST服务?

  20. 20

    Thymeleaf + HTML5-为什么我无法访问我的JavaScript?

  21. 21

    无法访问更新的全局变量的值

  22. 22

    为什么我无法在jquery函数中访问变量

  23. 23

    为什么无法访问我当前添加的列表框项目?

  24. 24

    为什么无法访问我当前添加的列表框项目?

  25. 25

    为什么在使用$ new时无法访问我的范围属性?

  26. 26

    为什么在Ubuntu 14.04上无法访问我的Bq Ubuntu手机?

  27. 27

    在JavaScript中创建全局变量,控制台无法访问

  28. 28

    nodejs:mysql 无法访问连接查询回调中的全局变量

  29. 29

    无法访问 citrus-context.xml 中的全局变量

热门标签

归档