ReferenceError: math is not defined — что это означает

Противная и неочевидная ошибка, которую очень легко исправить.

ReferenceError: math is not defined — что это означает

Представьте такое: вы делаете онлайн-калькулятор на JavaScript и хотите реализовать, например, функцию возведения в степень. Вы идёте в Яндекс, вбиваете в поиск «возведение в степень javascript». По первой строке в результатах всё понятно: нам нужна функция math.pow() из стандартной математической библиотеки math. Пишем код:

// возводим число Х в степень У и отправляем в переменную result result = math.pow(x,y);

Этот код при запуске вываливается с ошибкой:

❌ ReferenceError: math is not defined

Это означает: «Я не знаю, что такое math, поэтому не буду это выполнять». При этом вы точно уверены, что всё в порядке, потому что все остальные сайты дают именно такую же команду.

Но всё проще, чем вы думаете.

Что делать с ошибкой ReferenceError: math is not defined

Дело в том, что в JavaScript все имена встроенных объектов пишутся с большой буквы. Math — тоже встроенный объект, поэтому его тоже нужно писать с большой буквы. Чтобы исправить нашу ошибку, этого будет достаточно:

// возводим число Х в степень У и отправляем в переменную result result = Math.pow(x,y);

Теперь ошибки нет, и мы можем продолжать делать свой онлайн-калькулятор.

Объясните подробнее

JavaScript — регистрозависимый язык. Это значит, что он различает строчные и прописные буквы в названиях переменных, командах и функциях. Например, hello, Hello и HELLO — три разные переменные с точки зрения JavaScript.

По этой причине нужно перепроверять все команды, которые вы находите на любых сайтах — возможно, там есть ошибка в синтаксисе. А иногда программист просто забывает написать нужную команду с большой буквы. Такие дела.

Обложка:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Маша Климентьева

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Вам может быть интересно
$ is not defined в jQuery: что это значит и что делать
$ is not defined в jQuery: что это значит и что делать
medium
Андрюха, у нас логика! Возможно, криминал
Андрюха, у нас логика! Возможно, криминал

Логическая задача о преступности.

easy
5 полезных функций Excel для начинающих программистов
5 полезных функций Excel для начинающих программистов

Необязательно писать код только на языках программирования — Excel тоже подходит.

easy
Метод str.replace() в Python
Метод str.replace() в Python

Заменяем строки как фокусники

easy
Делаем из сайта приложение для Android на конструкторе
Делаем из сайта приложение для Android на конструкторе

Просто, бесплатно, но с рекламой

medium
Делаем своего первого чат-бота
Делаем своего первого чат-бота

Суперпростой способ создать бота, не зная программирования.

easy
Собираем телеграм-бота с прогнозом погоды
Собираем телеграм-бота с прогнозом погоды

Мы ему город, а он нам — погоду и рекомендации, как одеться

medium
Что означает ошибка SyntaxError: missing formal parameter
Что означает ошибка SyntaxError: missing formal parameter

Ты объявляешь функцию, но ты делаешь это без уважения.

easy
Цветной арканоид на JavaScript
Цветной арканоид на JavaScript

Всё как на старых приставках.

hard
medium