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.

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

Обложка:

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

Корректор:

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

Вёрстка:

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

Через год — лучше работа, выше зарплата
В «Яндекс Практикуме» становятся разработчиками с нуля. Выберите язык — веб, Python, Java, C++ — и учитесь. Джуны зарабатывают от 80 000 ₽, мидлы — от 150 000 ₽. Дальше — программы трудоустройства и компенсация, если пойдёте в Яндекс.
Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата
Вам может быть интересно
$ is not defined в jQuery: что это значит и что делать
$ is not defined в jQuery: что это значит и что делать
medium
5 полезных функций Excel для начинающих программистов
5 полезных функций Excel для начинающих программистов

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

easy
Андрюха, у нас логика! Возможно, криминал
Андрюха, у нас логика! Возможно, криминал

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

easy
Метод count() в Python
Метод count() в Python

Считаем количество элементов в коллекциях

easy
Улучшаем арканоид
Улучшаем арканоид

Добавляем очки, жизни и нарастание сложности.

medium
Как создать простой калькулятор на JavaScript
Как создать простой калькулятор на JavaScript

Проще уже некуда

easy
Как сделать красивый сайт на Вордпрессе
Как сделать красивый сайт на Вордпрессе

Быстрее, чем экспресс-дизайн. Дешевле, чем экспресс-дизайн. Лучше, чем экспресс-дизайн.

medium
Простейший математический фокус
Простейший математический фокус

Можно использовать для пикапа или на пьяных вечеринках

easy
Добавляем секретный уровень в пинг-понг на JavaScript
Добавляем секретный уровень в пинг-понг на JavaScript

Мини-проект для тех, кому всё ещё просто.

medium
medium