Точки с запятой
Что не так?
Найдите ошибку в коде, не запуская его
let a = 5
(function() {
alert(a)
})()
Почему так?
TypeError: 5 is not a function
Пропущенная точка с запятой приводит к тому, что самовызываемая функция превращается в аргумент при
выполнении числа 5
как функции.
Это равноценно такой записи
let a = 5(function() {alert(a)})()
5
— примитив, его нельзя выполнить и из-за этого скрипт умирает.
Корректная запись
let a = 5;
(function() {
alert(a)
})();
Что же делать?
Соблюдайте стиль кодирования и всегда ставьте точки с запятой и фигурные скобки.