gpt4 book ai didi

javascript - 为什么函数内的 javascript 全局变量显示错误?

转载 作者:行者123 更新时间:2023-12-03 00:22:10 25 4
gpt4 key购买 nike

我在 Javascript 的 numPrinter 函数中放置了一个全局变量。
但如果我不输入numPrinter();放置前console.log(i);


它是a global variable ..global ..而且我也不明白怎么global variablenumPrinter() 之后工作

没有return i; numPrinter();

var numPrinter = function(){

i = 30;
};

console.log(i); // ReferenceError: i is not defined

numPrinter();
console.log(i); // 30

最佳答案

想象一下你是 JavaScript 引擎,从上到下阅读这段代码:

  1. 我们读到的第一件事是 numPrinter功能。没有()现在,所以numPrinter仅定义但未调用。
  2. 继续往下,第一个console.log(i);已读。在这里调用它会导致 ReferenceError: i is not defined因为numPrinter仍然没有被调用,所以 i尚无法访问。
  3. 再往下,我们遇到 numPrinter();这里,JS引擎读取()并调用numPrinter功能。我们现在可以访问i因为未声明的变量总是成为全局变量。
  4. 最后是第二个console.log(i);读取并打印出 30 的结果因为i可以在 numPrinter 之外全局访问功能。

关于javascript - 为什么函数内的 javascript 全局变量显示错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54268227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com