Answer the question
In order to leave comments, you need to log in
How does the task from the social security work?
I was interviewing at a bank, stuck on a problem. Please explain step by step what will be the answer.
var b = 1;
var a = 2;
(function() {
var a = 3;
b = 4;
})();
if (a == 2){
var a = 5;
}
console.log(a, b);
5 4
var a = 3;
не влияет на a
, а var a = 5;
— влияет?Answer the question
In order to leave comments, you need to log in
var b = 1; //Это глобальная переменная b
var a = 2; //Это глобальная переменная a
console.log(a, b); // 2, 1
(function() {
var a = 3; //тут объявляется переменная a внутри функции
b = 4; // тут нет объявления переменной b, поиск переменной идет сначала внутри функции, если ее нет, то ищем ее вне границ функции и находим. Но если бы мы ее и там не нашли, то была бы ошибка "Переменная не объявлена"
})(); //Функция сразу запускается, результатом ее выполнения будет глобальная a =2 (не измен) и глобальная b = 4 (изм)
console.log(a, b); // 2, 4
if (a == 2){
var a = 5; //так как глобальная a осталась равна 2, то условие сработает и a приравняется 5. Точнее она переопределится здесь. Условие выполняется в рамках глобальной области видимости.
}
console.log(a, b); // 5, 4
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question