[英]Why does this global Javascript variable behave differently inside and outside of a function?
[英]why does a javascript global variable within function show an error?
我在Javascript的numPrinter函数中放入了一个全局变量。
但是如果我不放numPrinter();
在放置console.log(i);
之前console.log(i);
它是a global variable
.. global
..而且我不明白numPrinter()
之后global variable
是如何工作的
return i;
没有return i;
在numPrinter();
var numPrinter = function(){
i = 30;
};
console.log(i); // ReferenceError: i is not defined
numPrinter();
console.log(i); // 30
假设您是JavaScript引擎,从上至下阅读以下代码:
numPrinter
函数。 目前没有()
,因此numPrinter
仅被定义而不被调用。 console.log(i);
被读取。 这里调用它导致ReferenceError: i is not defined
,因为numPrinter
还没有被调用所以i
暂时还无法访问。 numPrinter();
在此,JS引擎读取()
并调用numPrinter
函数。 现在,我们可以访问i
因为未声明的变量始终成为全局变量。 console.log(i);
被读取并打印出30
的结果,因为在numPrinter
函数之外可以全局访问i
。 默认情况下,js中的变量是全局变量,因此如果您将smth编写为:
let i = 30
在您的功能中,它将是本地的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.