Как исправить ошибки SyntaxError в JavaScript
- 14 июля 2023
Ошибки SyntaxError появляются, если разработчик нарушил правила синтаксиса JavaScript, например, пропустил закрывающую скобку или точку с запятой. Давайте посмотрим, что означает каждая ошибка и в чём может быть проблема.
Что означают ошибки SyntaxError
SyntaxError: Missing) after argument list — пропущена закрывающая круглая скобка после списка аргументов функции.
// Забыли поставить скобку после списка аргументов
console.log('Hello', 'World!';
SyntaxError: Missing } after function body — в функции или блоке кода пропущена закрывающая фигурная скобка.
// Не добавили закрывающую фигурную скобку
function myFunction() {
console.log('Hello');
SyntaxError: Unexpected end of input — отсутствует закрывающая скобка, кавычка или другой элемент, обозначающий конец кода.
// Пропустили закрывающую фигурную скобку
if (x === 10) {
console.log('x is 10');
SyntaxError: Function statements require a function name — не указано имя функции.
// Забыли указать имя функции
function() {
console.log('Hello, World!');
}
SyntaxError: Unexpected token — в коде обнаружен недопустимый, неожиданный символ или токен. Часто причина этой ошибки — лишние точки, запятые и другие символы.
// Использовали недопустимый символ — %
const x = 5;
console.log(x * 10%);
Ещё такая ошибка появляется, если неправильно объявить имя переменной.
// Начали имя переменной с числа
const 1variable = 'Hello';
💡 Имена переменных не могут начинаться с цифры, содержать пробелы, !
, @
, #
, $
, %
и некоторые другие символы. Исключение — знак подчёркивания _
. Нельзя использовать зарезервированные ключевые слова, например, var
, let
, const
, if
, else
и function
.
Как исправить ошибку SyntaxError
Исправить такие ошибки просто — нужно найти строку с нарушением правил синтаксиса и добавить или убрать недостающий знак. Например, не хватает скобки — добавьте её. Неправильно написали имя переменной — замените его на корректное. Поставили лишнюю точку — удалите ненужный символ.
Найти строку с ошибкой тоже нетрудно. Если вы пользуетесь линтером, он подсветит проблемное место в редакторе: укажет строку и название ошибки.
💫 Линтер — это инструмент, который проверяет синтаксис и стиль кода на ошибки. Он находит проблемные места и отображает их в терминале или среде разработки. Это помогает разработчикам исправлять ошибки до того, как код будет развёрнут на сайте или в приложении.
![Вы заметите ошибку прямо в редакторе, ещё при написании кода](https://cs1.htmlacademy.ru/blog/js/syntaxerror/9f9aa6c92ed5bacf72152719c816d09a.png)
Если пропустите опечатку в редакторе, линтер сообщит о ней в терминале при попытке собрать проект.
![Сообщение об ошибке](https://cs1.htmlacademy.ru/blog/js/syntaxerror/2c573de19074151aad4211e08cfe71ca.png)
Так же и с консолью — если с кодом что-то не так, вы увидите описание проблемы и строку, на которой закралась ошибка. Например, здесь опечатка на второй строке.
![Строка с ошибкой](https://cs1.htmlacademy.ru/blog/js/syntaxerror/fd6daeb6ad70b28f56dea9583207aa59.png)
Если кликнуть по ссылке с названием строки, откроется код. Вы сможете прямо в инструментах разработчика понять, что и где нужно поправить.
И помните: опечатки в коде бывают даже у опытных разработчиков. Главное — вовремя их отслеживать и исправлять, потому что даже из-за маленькой запятой код может работать не так, как вам бы этого хотелось.
Материалы по теме
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
Читать дальше
![9 книг по JavaScript для начинающих в 2024](https://cs1.htmlacademy.ru/blog/js/books-javascript/preview.png)
9 книг по JavaScript для начинающих в 2024
Все вокруг говорят, что книги — прошлый век. Но вовремя прочитанная хорошая книжка может здорово помочь в изучении нового языка или технологии, а то и вообще целиком объяснить какую-нибудь важную штуку. Например, какие бывают алгоритмы, или зачем нужен рефакторинг. К тому же, хоть фреймворки меняются каждый год, основы обычно долго не меняются.
Мы опросили знакомых разработчиков, узнали, что читают они сами, и предлагаем вам подборку хороших книг по JavaScript.
- 6 марта 2024
![Объект URL в JavaScript: полный разбор](https://cs1.htmlacademy.ru/blog/js/url/preview.png)
Объект URL в JavaScript: полный разбор
Объект URL
в JavaScript представляет URL-адрес и предоставляет удобные методы для работы с ним. Он позволяет анализировать, конструировать и декодировать URL-адреса.
Создать объект URL
можно двумя способами:
Конструктор URL()
— самый распространённый способ, в котором вы передаёте любой URL в виде строки в качестве аргумента.
const url = new URL("https://www.example.com/path?query=123#hash");
Использование window.location
— это глобальный объект в браузерах, который содержит информацию о текущем URL.
const currentUrl = new URL(window.location.href);
- 23 января 2024
![Генерация QR-кодов на JS в 4 шага. Node.js + qrcode](https://cs1.htmlacademy.ru/blog/js/qr-generator/preview.png)
Генерация QR-кодов на JS в 4 шага. Node.js + qrcode
Давайте сделаем простой REST API на Node.js и Express, который будет генерировать QR-коды для любой ссылки. Если у вас ещё не установлены Node.js
и npm
, установите их с официального сайта.
- 22 ноября 2023
![ChatGPT не справляется](https://assets.htmlacademy.ru/previews/blog/2153/default1698921768956@1x.png)
ChatGPT не справляется
Притворитесь нейросетью и решите 101 задачку по JavaScript как можно быстрее.
- 2 ноября 2023
![Знакомство с JavaScript](https://cs1.htmlacademy.ru/blog/js/introduction-to-javascript/preview.png)
Знакомство с JavaScript
Теперь, когда вы знаете, как создать структуру веб-страницы с помощью HTML и оформить ее стилями с помощью CSS, пришло время оживить её с помощью JavaScript (JS). JavaScript — это мощный язык программирования, который используется для создания интерактивных и динамических веб-сайтов.
Вы можете добавить JavaScript в ваш HTML-документ двумя способами:
Встроенный JavaScript: непосредственно в HTML-документ, в тегах <script>
:
<script>
alert("Привет, мир!");
</script>
Внешний JavaScript: подключение внешнего .js
файла к HTML-документу:
<script src="script.js"></script>
- 1 ноября 2023
![Событие onclick в JS на примерах](https://cs1.htmlacademy.ru/blog/js/onclick/preview.png)
Событие onclick в JS на примерах
Интерактивность — ключевой компонент любого современного сайта. И одним из наиболее часто используемых событий для создания интерактивности является событие onclick
. В этой статье мы подробно разберёмся, что такое событие onclick
, как его использовать и приведем примеры применения.
Событие onclick
— это событие JavaScript, которое активируется, когда пользователь кликает на определенный элемент страницы. Это может быть кнопка, ссылка, изображение или любой другой элемент, на который можно нажать.
- 30 октября 2023
![Как перевернуть сайт. Самая короткая инструкция](https://assets.htmlacademy.ru/previews/blog/2141/default1698229018763@1x.png)
Как перевернуть сайт. Самая короткая инструкция
Не представляем, зачем это может понадобиться, но не могли пройти мимо.
Никакой магии. Мы вызываем JavaScript-функцию rotateBody()
, которая применяет свойство transform
с значением rotate(180deg)
к элементу <body>
. Когда вы нажмете на кнопку «Перевернуть», всё, что находится внутри <body>
будет повернуто на 180 градусов (то есть, встанет вниз головой)
function rotateBody() {
document.body.style.transform = 'rotate(180deg)';
}
<button onclick="rotateBody()">Перевернуть</button>
Но такой код повернёт страницу только один раз. Если нужно, чтобы она возвращалась обратно при втором клике, усложним код:
let isRotated = false;
function rotateBody() {
if (isRotated) {
document.body.style.transform = 'rotate(0deg)';
document.body.style.direction = "ltr";
} else {
document.body.style.transform = 'rotate(180deg)';
document.body.style.direction = "rtl";
}
isRotated = !isRotated;
}
Надеемся, вы прочитали это описание до того, как нажать на кнопку.
- 25 октября 2023
![Как узнать геолокацию: Geolocation API](https://cs1.htmlacademy.ru/blog/js/geolocation/preview.png)
Как узнать геолокацию: Geolocation API
Geolocation API позволяет сайтам запрашивать, а пользователям предоставлять свое местоположение веб-приложениям. Геолокация может использоваться для выбора города в интернет-магазине, отображения пользователя на карте или навигации в ближайший гипермаркет.
Основной метод Geolocation API — getCurrentPosition()
, но есть и другие методы и свойства, которые могут пригодиться.
- 16 октября 2023
![Что такое localStorage и как им пользоваться](https://cs1.htmlacademy.ru/blog/js/localstorage/preview.png)
Что такое localStorage и как им пользоваться
localStorage
— это место в браузере пользователя, в котором сайты могут сохранять разные данные. Это как ящик для хранения вещей, которые не исчезнут, даже если вы выключите компьютер или закроете браузер.
До localStorage
разработчики часто использовали cookies, но они были не очень удобны: мало места и постоянная передача данных туда-сюда. LocalStorage появился, чтобы сделать процесс более простым и эффективным.
- 12 октября 2023
![Случайное число из диапазона](https://cs1.htmlacademy.ru/blog/js/rand-between/preview.png)
Случайное число из диапазона
Допустим, вам зачем-то нужно целое случайное число от min
до max
. Вот сниппет, который поможет:
function getRandomInRange(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
- Math.random () генерирует случайное число между 0 и 1. Например, нам выпало число
0.54
. - (max — min + 1): определяет количество возможных значений в заданном диапазоне.
10 - 0 + 1 = 11
. Это значит, что у нас есть 11 возможных значений (0, 1, 2, ... 10). - Math.random () * (max — min + 1): умножает случайное число на количество возможных значений:
0.54 * 11 = 5.94
. - Math.floor (): округляет число вниз до ближайшего целого. Так,
Math.floor(5.94) = 5
. - ... + min: смещает диапазон так, чтобы минимальное значение соответствовало
min
. Но в нашем примере, так какmin = 0
, это не изменит результат. Пример:5 + 0 = 5
. - Итак, в нашем примере получилось случайное число 5 из диапазона от 0 до 10.
Чтобы протестировать, запустите:
console.log(getRandomInRange(1, 10)); // Тест
- 7 сентября 2023