由于某种原因,某些JavaScript全局变量在某些时候设置为局部变量时会变得未定义。 例如,在以下示例中,local
通常会变成“undefined
”。 你们中的任何人都可以请指教吗?JavaScript全局变量undefined函数内部有时
我期待的“local
”的值是“全球价值”的functionB()
和functionC()
或doStringProcessingA()
和doStringProcessingB()
。 “local
”的值是“undefined
”。我确定没有其他地方可以在任何地方分配值或设置为全局。
我检查了下面的链接,但它似乎没有关系。 'Hoisted' JavaScript Variables 和 Why a variable defined global is undefined?
泛函()由从HTML onClick事件调用。
var global;
function functionA(){
global = "global value";
}
function functionB(){
var local = global;
doStringProcessingA(local);
}
function functionC(){
var local = global;
doStringProcessingB(local);
}
<div onclick="functionA()">
<span class="Text">Submit</span>
</div>
您的'全局'变量没有被赋予全局任何值。它从'functionA'中获得它的值。确保先调用'functionA',然后调用其他函数,这些函数使用'global'变量的值。 –
我无法完全解析你的英语。你说全局变量变得不确定?当你说“设置为局部变量的全局变量”时,你的意思是“全局变量,当该全局变量被赋予局部变量的值”还是“全局变量,当局部变量变量赋值时”?请注意,与许多其他语言不同,“设置A到B”的英文意思是“更改A的值,使其现在具有B的值”,而不是“取A的值并将其置于(设置)INTO B”。 – 2017-09-13 03:08:16
我期待在函数B和函数C或doStringProcessingA和doStringProcessingB中“本地”的值是“全局值”。 “本地”的值是“未定义的”。我确定没有其他地方可以在任何地方分配值或设置为全局。 –