javascript - 从函数更新全局变量

标签 javascript html function variables scope

有一个名为numbers的全局变量。 函数一计算一个随机数并将其存储在 mynumber 变量中。

var mynumber;

function one (){
var mynumber = Math.floor(Math.random() * 6) + 1;
}

我需要在单独的函数中使用它,如下所示。但错误显示未定义 - 这意味着函数一的值未更新。

function two (){
alert(mynumber);
}

如何克服这个问题。有没有办法更新 mynumber 全局变量。

最佳答案

如果您使用 var 声明变量,它会在当前作用域内创建该变量。如果不这样做,它将在全局范围内声明它。

var mynumber;

function one (){
    mynumber = Math.floor(Math.random() * 6) + 1; // affects the global scope
}

即使您也定义了局部变量,您也可以指定您想要全局范围:

function one (){
    var mynumber = 1; // local
    window.mynumber = Math.floor(Math.random() * 6) + 1; // affects the global scope
}

知道全局作用域是window,你可以在修改全局变量时变得非常棘手:

function one (){
    var mynumber = Math.floor(Math.random() * 6) + 1; // local
    window['mynumber'+mynumber] = mynumber; // sets window.mynumber5 = 5 (or whatever the random ends up as)
}

关于javascript - 从函数更新全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25917425/

相关文章:

javascript - hasChildNodes 与 firstChild

PHP:以等号作为参数的函数?

html - 在 CSS 中,当我滚动滚动条时,<li> 的背景色消失了

javascript - 如何在提交之前运行 javascript 函数?

r - dplyr 友好的用户函数,可与 join 函数一起使用

c++ - 幂函数c++

javascript - 带有 jQ​​uery slideToggle 回调的 google map api

javascript - 更改输入字段 Html/JavaScript?

javascript - webpack:在公用文件夹中转换 web worker

javascript - 下拉选项从其他下拉菜单中删除