Представьте такое: вы делаете онлайн-калькулятор на 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.
По этой причине нужно перепроверять все команды, которые вы находите на любых сайтах — возможно, там есть ошибка в синтаксисе. А иногда программист просто забывает написать нужную команду с большой буквы. Такие дела.