Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将函数的结果设置为全局变量_Javascript_Global Variables - Fatal编程技术网

Javascript 如何将函数的结果设置为全局变量

Javascript 如何将函数的结果设置为全局变量,javascript,global-variables,Javascript,Global Variables,我确信这非常简单,我画了一个巨大的空白,但是如何将函数的结果设置为全局变量呢 例如,我想将数组“colors”中的第一个“color”设置为全局变量“color”(我知道这个示例没有太多实际意义,但只是为了说明我的问题): 如果您在selectColor()函数中从color中删除var声明,它应该对您有效,如下所示: var color = ""; function selectColor () { var colors = ["blue","red","green","yellow

我确信这非常简单,我画了一个巨大的空白,但是如何将函数的结果设置为全局变量呢

例如,我想将数组“colors”中的第一个“color”设置为全局变量“color”(我知道这个示例没有太多实际意义,但只是为了说明我的问题):


如果您在
selectColor()
函数中从
color
中删除
var
声明,它应该对您有效,如下所示:

var color = "";

function selectColor () {
    var colors = ["blue","red","green","yellow"];
    color = colors[0];
    return color;
}

window.onload = function () {
    selectColor ();
    alert(color);
}

如果您在
selectColor()
函数中从
color
中删除
var
声明,它应该对您有效,如下所示:

var color = "";

function selectColor () {
    var colors = ["blue","red","green","yellow"];
    color = colors[0];
    return color;
}

window.onload = function () {
    selectColor ();
    alert(color);
}

回答你的问题:

var color = "";

function selectColor () {
    var colors = ["blue","red","green","yellow"];
    var color = colors[0];
    return color;
}

window.onload = function () {
    selectColor ();
    alert(color);
}
var color = "";

function selectColor () {
    var colors = ["blue","red","green","yellow"];
    color = colors[0];
}

window.onload = function () {
    selectColor ();
    alert(color);
}
  • var关键字在selectColor()内创建一个局部变量;你不会想要的
  • 返回语句不是必需的;你没有抓住它
无论如何,在这个确切的例子中,这样做会更干净:

var color = "";

function selectColor () {
    var colors = ["blue","red","green","yellow"];
    return colors[0];
}

window.onload = function () {
    color = selectColor ();
    alert(color);
}

回答你的问题:

var color = "";

function selectColor () {
    var colors = ["blue","red","green","yellow"];
    var color = colors[0];
    return color;
}

window.onload = function () {
    selectColor ();
    alert(color);
}
var color = "";

function selectColor () {
    var colors = ["blue","red","green","yellow"];
    color = colors[0];
}

window.onload = function () {
    selectColor ();
    alert(color);
}
  • var关键字在selectColor()内创建一个局部变量;你不会想要的
  • 返回语句不是必需的;你没有抓住它
无论如何,在这个确切的例子中,这样做会更干净:

var color = "";

function selectColor () {
    var colors = ["blue","red","green","yellow"];
    return colors[0];
}

window.onload = function () {
    color = selectColor ();
    alert(color);
}

添加点:JavaScript变量范围基于函数。如果在函数中声明一个带有var的变量,则它不同于同名的全局变量。如果不使用var声明变量,则意味着它是全局变量,无论它是否在函数外部声明。是的,这是我的问题,我混淆了变量,因为我在函数内部再次声明了它,谢谢。在本例中,您不需要
返回颜色
selectColor()
函数只需设置全局变量,而不返回结果。对于这样简单的事情很好,但是如果您需要在将变量设置为全局变量之前使用该变量,我会将color保留为局部变量并返回结果。如果在函数中声明一个带有var的变量,则它不同于同名的全局变量。如果不使用var声明变量,则意味着它是全局变量,无论它是否在函数外部声明。是的,这是我的问题,我混淆了变量,因为我在函数内部再次声明了它,谢谢。在本例中,您不需要
返回颜色
selectColor()
函数只需设置全局变量,而不返回结果。对于这样简单的事情很好,但是如果在将其设置为全局变量之前需要使用该变量,我会将color保留为局部变量并返回结果。