вернуться к уроку

Вызов "на месте"

важность: 4

Каков будет результат выполнения кода? Почему?

var a = 5

(function() {
  alert(a)
})()

P.S. Подумайте хорошо! Здесь все ошибаются! P.P.S. Внимание, здесь подводный камень! Ок, вы предупреждены.

Результат – ошибка. Попробуйте:

var a = 5

(function() {
  alert(a)
})()

Дело в том, что после var a = 5 нет точки с запятой.

JavaScript воспринимает этот код как если бы перевода строки не было:

var a = 5(function() {
  alert(a)
})()

То есть, он пытается вызвать функцию 5, что и приводит к ошибке.

Если точку с запятой поставить, все будет хорошо:

var a = 5;

(function() {
  alert(a)
})()

Это один из наиболее частых и опасных подводных камней, приводящих к ошибкам тех, кто не ставит точки с запятой.