Вызов "на месте"
важность: 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)
})()
Это один из наиболее частых и опасных подводных камней, приводящих к ошибкам тех, кто не ставит точки с запятой.