@toknow

Есть ли разница между заданием функции через var или без?

Есть ли разница между:
function square(num) {
  return num*num;
}

и
var square = function(num) {
  return num*num;
}

И если да, то какой вариант предпочтительнее? Заранее спасибо
  • Вопрос задан
  • 240 просмотров
Решения вопроса 2
EreminD
@EreminD
Кое-что умею
//Такие функции браузер считывает перед выполнение скрипта
function square(num) {
}

//Такие - только когда встречает первое использование 
var square = function(num) {
}


Вот как это проверить:
alert(square(5)) //ок, функция была загружена перед выполнением скрипта
function square(num) {
   return num*num;
}

alert(sum(5)) //error - хз, че за функция, не встречал еще такой
var sum = function(num) {
   return num*num;
}

UPD: обидно, когда ответ оформляешь красиво, а уже ответили ((
UPD2: Ахах) Спасибо!)
Ответ написан
Комментировать
FFxSquall
@FFxSquall
Могу писать код, могу не писать
Создание функции через присваивание переменной называется "Function Expression", второй способ "Function Declaration", можно выделить пожалуй одно основное отличие.
Функция, объявленная как Function Declaration, создается интерпретатором до выполнения кода. То есть если у вас Function Declaration и вы вызываете функцию до того как она объявляется в коде, всё будет замечательно работать. Если у вас Function Expression, а вы пытаетесь её вызывать до того, как выполнилось присваивание, получите ошибку. Подробнее можно прочитать тут
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы