Решение ошибки "test not defined" в JavaScript на JSFiddle

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для корректной работы JavaScript кода в JSFiddle рекомендуется следовать нижеприведенным рекомендациям:

  • Отметить в настройках опцию Без обёртки – в <body> или Без обёртки – в <head> для предотвращения проблем с загрузкой скрипта.
  • Выбрать соответствующую версию фреймворка/библиотеки, с учётом требований вашего проекта.
  • Правильно подключить все внешние ресурсы.
  • Проверить код на происхождение синтаксических ошибок.

Пример изменений в настройках фиддла:

HTML
Скопировать код
// В настройках фиддла, выберите: Без обёртки – в <body>

Следуя этим рекомендациям вы сможете эффективно отлаживать ваш JavaScript.

Кинга Идем в IT: пошаговый план для смены профессии

Настройка: разъяснение нюансов обёртывания

JSFiddle по умолчанию оборачивает JavaScript код событием onLoad, что ограничивает область видимости функций. Для того чтобы обеспечить глобальную доступность функций, выберите одну из следующих настроек без обёртки:

  • Без обёртки – в <head>: Ваш код выполняется немедленно.
  • Без обёртки – в <body>: Ваш код запускается после полной загрузки страницы.
HTML
Скопировать код
// Задача: активировать фиддл
// Выберите: Без обёртки – в <body>

Значимость объявления функций и объекта window

Для глобальной доступности функций в вашем коде объявляйте их при помощи объекта window. В качестве альтернативы можно избежать оборачивания функций, объявив их через var.

JS
Скопировать код
window.mySuperFunction = function() { /* ... */ };
// или
function mySuperSolution() { /* ... */ }

Ненавязчивый JavaScript: использование слушателей событий вместо инлайн-обработчиков

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

JS
Скопировать код
// Производим отлов кликов
document.getElementById('myButton').addEventListener('click', mySuperFunction);

Выбор фреймворка в JSFiddle

Выбор фреймворка для JSFiddle может быть определён вами. Если ваши скрипты не зависят от сторонних библиотек, то лучше всего воспользоваться No Library (чистый JS), чтобы избежать излишних конфликтов.

Разработка и отладка вашего кода

При письме кода уделяйте внимание тому, чтобы он был кратким и стуктурированным. Это упростит процедуру отладки и поможет другим разработчикам легче понять ваш код.

Визуализация

Отладку JavaScript в JSFiddle можно сравнить с театральной постановкой:

Ваши JS функции (🎭): [Акт I: Объявление функций, Акт II: Установка слушателей событий, Акт III: Исполнение кода]

Сцена — JSFiddle (🎪): Настройки выбора фреймворка/библиотеки

Markdown
Скопировать код
Главные персонажи (🎭): 
- jQuery (🧚‍♂️)?
- Angular (🦸‍♂️)?
- React (👽)?

Декорации (🛠): Версия библиотеки в настройках должна соответствовать версии, необходимой для вашего скрипта.

Идеальное представление: когда все актёры исполняют свои роли безупречно — Код работает 🌟

Markdown
Скопировать код
// Звёздные моменты для ваших глаз
🎭 + Правильные 🛠 = 🌟

Распространённые проколы: когда актёры забывают свои роли — Неправильные настройки 🥀

Markdown
Скопировать код
// Не моя вина!
Неактуальные 🛠 = 🥀

Погружение глубже

Обработка событий с помощью jQuery

С использованием jQuery работа с событиями значительно облегчается. В случае использования этой библиотеки в JSFiddle, убедитесь, что версии в настройках и вашем коде соответствуют друг другу.

JS
Скопировать код
// По звонку — все готовы!
$(document).ready(function() { /* Ваш код запишите здесь */ });

Управление областями видимости и замыканиями

Объекты области видимости и замыкания могут стать источником проблем. Будьте внимательны при использовании функций в циклах и колбэках, чтобы минимизировать возможность ошибок.

JS
Скопировать код
// Вращение в цикле
for (var i = 0; i < 5; i++) {
  (function(i) {
    // Ваш код с текущим значением i
  })(i);
}

Проверка доступности элемента

Перед использованием элемента убедитесь, что он доступен в DOM.

JS
Скопировать код
// Готов или не готов, я иду!
document.addEventListener('DOMContentLoaded', function () { /* Код инициализации */ });

Полезные материалы

  1. Документация и справка по JSFiddle
  2. Страница об ошибке в JavaScript на MDN
  3. Вопросы с тегом 'jsfiddle' на сайте Stack Overflow
  4. HTML DOM событийные объекты
  5. Введение в события – Учебные материалы по веб-разработке на MDN
  6. JSLint: утилита для контроля качества и анализа JavaScript кода
  7. Современный учебник по JavaScript