Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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 - Fatal编程技术网

Javascript中作用域的问题

Javascript中作用域的问题,javascript,Javascript,我正在努力做到以下几点: var myVariable={}; 作用{ //将键/值添加到myVariable } //使用myVariable的键/值; 但是,键/值似乎只能在函数范围内访问。 为了修改函数内部的变量并能够在此函数外部使用它,我应该怎么做?是否必须使用全局变量 编辑:将声明从myVariable=[]更改为{}解决了这个问题。声明与键/值的使用之间存在语法错误。首先,您的代码包含一些语法错误。 您可以在函数内更改myVariable的值,因为这里它是一个全局变量,可供函数访问

我正在努力做到以下几点:

var myVariable={}; 作用{ //将键/值添加到myVariable } //使用myVariable的键/值; 但是,键/值似乎只能在函数范围内访问。 为了修改函数内部的变量并能够在此函数外部使用它,我应该怎么做?是否必须使用全局变量


编辑:将声明从myVariable=[]更改为{}解决了这个问题。声明与键/值的使用之间存在语法错误。

首先,您的代码包含一些语法错误。 您可以在函数内更改myVariable的值,因为这里它是一个全局变量,可供函数访问

您面临的问题可能是调用函数的位置

var myVariable={}; 函数changeMyVariable{ myVariable.mykey='xyz'; } console.logmyVariable//调用函数之前 changeMyVariable;
console.logmyVariable//调用函数后,您能否添加一个您想要完成的示例? 您在问题中所解释的是正确的,并且是javascript中作用域的工作方式

例如:

var myVariable=[]; console.logmyVariable;//长度=0 函数更新{ myVariable[0]=1;//向myVariable添加键/值 } updateVar;//呼叫更新
console.logmyVariable;//长度=1不能在数组中添加键值。您应该使用字面上的对象:{}您的问题毫无意义。您的代码中有语法错误,并且有模糊的注释,而不是问题的演示。您的变量已经是全局变量。@MihaiAlexandru Ionut-数组索引是键,数组是对象,因此可以向它们添加任意属性,尽管这样做通常不是一个好主意。感谢您的帮助,更正语法错误解决了问题。谢谢您的帮助,主要问题是我的语法错误,我将其声明为数组,并尝试添加键/值。将声明从[]更改为{}解决了问题A语法错误使整个代码段无法工作,现在很好,感谢您的帮助A语法错误使整个代码段无法工作,现在很好,谢谢您的帮助
var myArray = []; // Global empty array.

function myFunction() {
  myArray.push({aKey:"aValue"}); // Add a key and a value to the array.
  console.log(myArray); // Print the array in the console.
}

myFunction(); // Call the function, otherwise nothing will happen.