javascript - 为什么即使变量声明为全局,Javascript 代码也会打印 'undefined'?

标签 javascript global-variables

<分区>

为什么下面的JS代码打印'undefined'?有人可以解释一下 JS 的真正工作原理吗?

var regular = 'regular is assigned';

function prison() {
  console.log(regular);
  var regular;
}
prison();

谢谢!

最佳答案

这是一个范围问题。 在您的函数中,您声明了一个新的作用域。 Javascript 将变量 decleration 提升到 top 函数。由于该变量没有值,因此它是 undefined。 在窗口中创建的 regular 变量在函数范围内不存在。

关于javascript - 为什么即使变量声明为全局,Javascript 代码也会打印 'undefined'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36178348/

相关文章:

javascript - 带有反应导航的 Redux (reactnavigation.org)

php - 如何使用 session 变量创建 php 图像

javascript - 如何匹配具有固定标题的滚动表中的列

c++ - Qt C++:全局对象与引用链

c# - c#.net 中的全局变量

javascript - 在较新版本中,jQuery .change() 事件是通过 .click() 触发的吗?

javascript - 这有点抽象,但是你能得到一个从底 Angular 之一开始的 div 吗?

java - 类变量声明意外结束

javascript - Var 和 JavaScript 变量作用域

c++ - 如何跨多个源文件声明和使用全局外部变量?