Почему функция вывела такой результат?

136
01 июля 2019, 15:40

say('Вася'); 
 
var phrase = 'Привет'; 
 
function say(name) { 
  alert( name + ", " + phrase ); 
} 
 

Вот так другой результат почему ?

var phrase = 'Привет'; 
 
function sayHi(name) { 
  alert(phrase + ', ' + name); 
} 
 
sayHi('Вася');  // Привет, Вася (*)

Answer 1

Потому что декларации переменных перемещаются (are hoisted) в начало функций, а присвоения остаются там, где были.

https://www.w3schools.com/js/js_hoisting.asp

var phrase; 
 
// переменной phrase здесь еще не присвоено значение 
say('Вася'); 
 
phrase = 'Привет'; 
 
function say(name) { 
  console.log(name + ", " + phrase); 
}

READ ALSO
JS в WebView выполняется всего 1 раз

JS в WebView выполняется всего 1 раз

WebView подключен к indexhtml (скопирован из asset в память телефона)

142
Как убрать предупреждение в webpack 4 “svg-sprite-loader exception. Some loaders will be applied after svg-sprite-loader in extract mode.”

Как убрать предупреждение в webpack 4 “svg-sprite-loader exception. Some loaders will be applied after svg-sprite-loader in extract mode.”

суть вопроса таков при создание спрайтов svg у меня сыпятся вот такое предупреждение "svg-sprite-loader exceptionSome loaders will be applied after svg-sprite-loader in extract mode" ? подскажите...

139
Как перевести кодировку с cp1251 в utf8 на node js?

Как перевести кодировку с cp1251 в utf8 на node js?

Пытаюсь парсить сайт, страница находится в кодировке cp1251, при выводе у меня появляются ромбики с вопросильтельными знаками внутри, пробовал...

150
узнать время аудио

узнать время аудио

Можно как-то узнать общее время аудио-файла и текущее время если файл воспроизводиться

171