Переменная не определена…
Представьте, если бы было так легко обрести смысл жизни. В JavaScript, когда вы получаете эту ошибку, это может быть обескураживающим чувством. Что здесь случилось? Что это вообще значит и как это можно исправить. Во-первых, нам нужно понять, что происходит под капотом движка JavaScript V8.
Когда JavaScript начинает работать, он настраивает среду, в которой будет выполняться ваш код, называемую «контекстом выполнения». Первое, что он делает, это создает глобальный объект, переменную с именем «this» и, возможно, ссылку на внешнюю среду, если она есть. На этом этапе он начинается как процесс «поднятия» всех переменных в вашем коде.
«Подъем» — еще одна тема, которую лучше обсудить позже в отдельной статье. А пока, ради разговора, давайте просто согласимся использовать определение из документов MDN здесь :
«Строгое определение подъема предполагает, что объявления переменных и функций физически перемещаются в начало кода, но на самом деле это не так. Вместо этого объявления переменных и функций помещаются в память на этапе компиляции, но остаются именно там, где вы их ввели в своем коде».
Поскольку JavaScript настраивает среду для запуска вашего кода, он начинает выделять память для каждой объявленной вами переменной и пространство для значения, которое вы ей присвоили. Если вы не объявили явное значение для переменной с именем life . JavaScript автоматически присвоит ему специальное значение «undefined» . Итак, когда вы видите, что жизнь « неопределенна » как ошибка. Что пытается вам сказать javaScript: находится в среде выполнения, которую я создал для запуска вашего кода. Вы не присвоили значение переменной life. Таким образом, в вашем коде есть переменная с именем life , но для нее в памяти не хранится значение.
Это сильно отличается от «Ошибка ссылки: жизнь не определена». JavaScript необычайно полезен. Пытается указать вам направление для исправления вашего кода. Что движок JavaScript пытается сказать вам с помощью «Ошибка ссылки: жизнь не определена» , так это то, что когда ваш код был поднят, а переменные и значения были помещены в память. Механизм JavaScript не выделил место в памяти для этой переменной, поскольку вы не объявили переменную с именем life. По сути, это говорит о том, что в вашем коде нет ссылки на переменную с именем life, поэтому ничего не было поднято. Итак, у нас есть ошибка, потому что в среде выполнения нет ничего, на что можно ссылаться для значения.
Это поднимает действительно важный вопрос: что, если вам нужно объявить переменную и установить для нее значение, указывающее на отсутствие значения?
Мое предложение состояло бы в том, чтобы использовать «null» в соответствии с MDN здесь
«Значение nullпредставляет собой преднамеренное отсутствие какого-либо значения объекта. Это одно из примитивных значений JavaScript, которое считается ложным для логических операций».
Надеюсь, эта статья помогла прояснить, что на самом деле происходит внутри JavaScript, поскольку вы столкнетесь с этими распространенными ошибками. Увы, смысл жизни так просто не определить.
Удачного кодирования!
Введение Инсульт — это неотложная медицинская помощь, которая может случиться с кем угодно в любое время. Это происходит, когда приток крови к части мозга нарушается, что приводит к внезапной потере функции мозга.
На этой неделе я получил электронное письмо от участника ежедневного списка рассылки. Они хотели знать: какие ресурсы вы посещаете ежедневно, еженедельно и ежемесячно? Отличный вопрос! Я рад поделиться некоторыми мыслями о моем рабочем процессе и основных ресурсах, которые я использую.
Это поражает меня Внезапно, как это часто бывает, Это снова и снова на полпути <Нет, не то, что в Тихом океане, ты темно-бордовый, то, что на карнавале> Каждый громкий заголовок…..
Мы часто обнаруживаем, что изо всех сил пытаемся реализовать то, что, как мы знаем, полезно для нас. От того, чтобы сказать значимому другому, что мы любим его, до того, чтобы помнить, что нужно говорить как пират, всегда будут те, кто утверждает, что день, неделя или месяц событий не нужны, потому что они уже делают эти вещи.
В сегодняшнем быстро развивающемся бизнес-ландшафте концепция гибридной и удаленной работы приобрела беспрецедентный импульс. Поскольку компании продолжают приспосабливаться к меняющимся потребностям и ожиданиям своих сотрудников, эксперты из разных областей собрались вместе, чтобы обсудить преимущества, проблемы и будущее этого преобразующего способа работы.
«Он защитит меня, когда я в опасности. Он спрячет меня в своей палатке.