全局执行上下文中没有内部函数的 JavaScript 变量不可用

Finepax007

我在 kyle simpson 的一门 javascript 课程中了解到,如果我们在 Javascript 函数中声明一个变量而没有任何前缀 var 关键字,那么该变量在全局执行上下文中可用,但是当我在 chrome 开发人员工具或 nodejs 中尝试它时参考错误:....

有什么改变吗?

在 Windows 和 Linux 上的 Firefox 和 Chrome 中都会发生。

function foo() {
  bar = "I am in global scope";
}
foo();
console.log(bar);


    

ReferenceError: bar 未定义

另一个问题是关于 undefined 被附加到输出日志,我在这个问题中没有提到它。不知道为什么这被标记为重复。这个问题是关于全局执行上下文/范围

谢谢。

TJ克劳德

有什么改变吗?

不是宽松模式,不,也不会。JavaScript的指导委员会,TC39,是非常正确非常自觉的向后兼容性。

在严格模式下,该代码失败,因为bar在您分配给它的位置时未声明。

你已经说过你在 Chrome 的控制台和 Node.js 的 REPL 中看到了这一点。我看到undefined在这两种情况下,但它是因为这些环境都出现了呼吁的结果console.log(这是undefined显示bar"I am in global scope"看到,然后undefined(调用的结果console.log):

在此处输入图片说明

在此处输入图片说明

也就是说,不要将控制台用于此类事情。:-) 控制台是一个非常特殊的环境,尤其是在作用域周围,因为它们具有交互性。如果您想知道某些东西的真正工作原理,并且它甚至与范围相关,最好将其复制到实际文件或脚本中,而不是在控制台中。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

错误CS0027:关键字'this'在当前上下文中不可用

来自分类Dev

执行上下文中的函数参数和JavaScript中的范围

来自分类Dev

当前上下文中没有用于全局变量的符号

来自分类Dev

当需要通过其他类方法翻页时,函数变量不可用

来自分类Dev

具有长度的新JavaScript数组不可用吗?

来自分类Dev

javascript中的全局和局部变量执行上下文

来自分类Dev

为什么原型在简单的JavaScript对象中不可用

来自分类Dev

上传Javascript后获取图像宽度[在Firefox上有效,但在chrome上不可用]

来自分类Dev

全局变量在函数中不可用?

来自分类Dev

C ++函数不可用

来自分类Dev

JavaScript中的屏幕对象在QWebEnginePage中不可用

来自分类Dev

Javascript:为什么具有全局执行上下文的回调函数可以访问作用域变量?

来自分类Dev

尽管有适当的特征绑定,但与特质相关的const在特征定义上下文中不可用

来自分类Dev

Gitlab CI / CD:锚定/全局变量中的变量对Runner不可用

来自分类Dev

C#关键字“ this”在当前上下文中不可用

来自分类Dev

外部变量不可用,内部增强用于

来自分类Dev

函数内部的JavaScript延迟,没有全局变量

来自分类Dev

当前上下文中没有用于全局变量的符号

来自分类Dev

当需要通过其他类方法翻页时,函数变量不可用

来自分类Dev

关键字,这在C#的当前上下文中不可用

来自分类Dev

PHP全局功能不可用

来自分类Dev

ES6全局变量在类中不可用

来自分类Dev

全局声明的变量在javascript函数中不可用?

来自分类Dev

在全局上下文中运行的Javascript绑定函数

来自分类Dev

Javascript:为什么具有全局执行上下文的回调函数可以访问作用域变量?

来自分类Dev

在while循环内分配的全局变量在循环外不可用

来自分类Dev

变量在反应组件中的函数之外不可用

来自分类Dev

在函数中创建的动态变量在以后的调用中不可用

来自分类Dev

Javascript 函数正在改变上下文中的变量

Related 相关文章

  1. 1

    错误CS0027:关键字'this'在当前上下文中不可用

  2. 2

    执行上下文中的函数参数和JavaScript中的范围

  3. 3

    当前上下文中没有用于全局变量的符号

  4. 4

    当需要通过其他类方法翻页时,函数变量不可用

  5. 5

    具有长度的新JavaScript数组不可用吗?

  6. 6

    javascript中的全局和局部变量执行上下文

  7. 7

    为什么原型在简单的JavaScript对象中不可用

  8. 8

    上传Javascript后获取图像宽度[在Firefox上有效,但在chrome上不可用]

  9. 9

    全局变量在函数中不可用?

  10. 10

    C ++函数不可用

  11. 11

    JavaScript中的屏幕对象在QWebEnginePage中不可用

  12. 12

    Javascript:为什么具有全局执行上下文的回调函数可以访问作用域变量?

  13. 13

    尽管有适当的特征绑定,但与特质相关的const在特征定义上下文中不可用

  14. 14

    Gitlab CI / CD:锚定/全局变量中的变量对Runner不可用

  15. 15

    C#关键字“ this”在当前上下文中不可用

  16. 16

    外部变量不可用,内部增强用于

  17. 17

    函数内部的JavaScript延迟,没有全局变量

  18. 18

    当前上下文中没有用于全局变量的符号

  19. 19

    当需要通过其他类方法翻页时,函数变量不可用

  20. 20

    关键字,这在C#的当前上下文中不可用

  21. 21

    PHP全局功能不可用

  22. 22

    ES6全局变量在类中不可用

  23. 23

    全局声明的变量在javascript函数中不可用?

  24. 24

    在全局上下文中运行的Javascript绑定函数

  25. 25

    Javascript:为什么具有全局执行上下文的回调函数可以访问作用域变量?

  26. 26

    在while循环内分配的全局变量在循环外不可用

  27. 27

    变量在反应组件中的函数之外不可用

  28. 28

    在函数中创建的动态变量在以后的调用中不可用

  29. 29

    Javascript 函数正在改变上下文中的变量

热门标签

归档