say('Вася');
var phrase = 'Привет';
function say(name) {
alert( name + ", " + phrase );
}
Вот так другой результат почему ?
var phrase = 'Привет';
function sayHi(name) {
alert(phrase + ', ' + name);
}
sayHi('Вася'); // Привет, Вася (*)
Потому что декларации переменных перемещаются (are hoisted) в начало функций, а присвоения остаются там, где были.
https://www.w3schools.com/js/js_hoisting.asp
var phrase;
// переменной phrase здесь еще не присвоено значение
say('Вася');
phrase = 'Привет';
function say(name) {
console.log(name + ", " + phrase);
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей