1-й тест:Как понять глобальные и локальные переменные в JavaScript
var a = 1;
function b() {
a = 10;
return;
function a() {}
}
b();
alert(a); // 1
второй тест:
var a = 1;
function b() {
a = 10;
return;
}
b();
alert(a); // 10
В первом тесте, a
равно 1
, хотя я поставил его 10
в метод. Во втором тесте я установил его на 10
, и он установлен на 10
, когда я его выводю. Как это работает?
Этот пример и его пояснения приведены здесь: http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html –