我遇到了
Javascript的一个奇怪的范围问题(见
JSFiddle):
var someGlobal = 3; function someF() { // undefined issue alert(someGlobal); var someGlobal = 5; // Displays 5 alert(someGlobal); } function someF2() { // Displays 3,why? alert(someGlobal); } someF(); someF2();
为什么Javascript在someF2()中抛出一个未定义的问题?为什么someF2()可以访问someGlobal,而someF()不能访问?如何确保函数中可以访问全局变量?
备注:
在这两种情况下,函数都是通过调用alert(someglobal)来启动的,为什么一个函数抛出一个未定义的问题而另一个没有?