全局和局部变量JavaScript

全局和局部变量JavaScript,javascript,Javascript,如何从函数外部获取函数内部的信息 var x = 0; function myFunction() { x += 1 //When a button is clicked Javascript will add 1 to x, now x will have a value of 1 } alert(x) //This returns 0, how to make it return 1 仅限纯JavaScript P.P.S.尽量让你的答案简单,不需要太多代码。谢谢:)那么

如何从函数外部获取函数内部的信息

var x = 0;

function myFunction() {  
    x += 1 //When a button is clicked Javascript will add 1 to x, now x will have a value of 1

}

alert(x) //This returns 0, how to make it return 1
仅限纯JavaScript

P.P.S.尽量让你的答案简单,不需要太多代码。谢谢:)

那么,您的函数必须为此执行。函数体仅在调用/调用时执行。所以要么创建一个IIFE函数,要么稍后调用它

myFunction();
alert(x); // now the value has been updated
通过IIFE(立即调用的函数Expresson),我的意思是


您必须首先调用myFunction(),例如:

myFunction();
alert(x);

在发出警报之前,应首先将其称为
myFunction
myFunction()
。这就是你得到0的原因。加载此脚本时,x的值为0。因此,警报将向0发出警报。然后,每当用户单击您提到的按钮时,
x
的值将增加1。话虽如此,我认为你需要这样的东西:

function myFunction() {
    // when the button will be clicked the value of x
    // would be incremented by one.  
    x += 1 

    // the new value would be alerted.
    alert(x);
}
另一种方式是:

myFunction();
alert(x);

但是,这没有意义,因为每次单击按钮时都需要增加
x
的值,并且不需要强制执行
myFunction

首先冷却
myFunction()然后您可以通过
警报(x)获取值

在这种情况下,其他答案是正确的-只需调用
myFunction()
警报(x)
之前,但为了完整起见,“从函数外部获取函数内部信息”的另一个选项是从函数返回值:

var x=0;
函数myFunction(){
返回x+1;//返回0+1=1。注意x仍然是0
}
var y=myFunction();//y存储函数的返回值,即1
警报(y)签出:


函数“run”只能访问其作用域中的变量。尽管变量“x”在外部定义,但它仍然是可访问的。您需要更深入地研究变量概念的范围。希望这能澄清问题

也许要等到函数执行完毕?
myFunction();
alert(x);
(function(){
  var x=10;
    function run(){
    alert(x);
    }
  run();
})();