Меню
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP КАК СДЕЛАТЬ ПРОГРАММЫ SW3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS КИБЕРБЕЗОПАСНОСТЬ НАУКА О ДАННЫХ
     ❯   

JS Учебник


JS Версии


JS Объекты


JS Функции


JS Классы


JS Асинхронный


JS HTML DOM


JS Браузер BOM


JS Веб APIы


JS AJAX


JS JSON


JS или jQuery


JS Графика


JS Примеры


JS Рекомендация




JavaScript Подъем



Подъем - это стандартное поведение JavaScript, по умолчанию при перемещении объявлений вверх.


JavaScript Объявления поднимаются

В JavaScript переменная может быть объявлена после её использования.

Другими словами; переменную можно использовать до ее объявления.

Пример 1 дает тот же результат, что и Пример 2:

Пример 1
x = 5; // Присваиваем 5 к x

elem = document.getElementById("demo"); // Находим элемент
elem.innerHTML = x; // Отображаем x в элементе

var x; // Объявить x
Попробуйте сами »
Пример 2
var x; // Объявить x
x = 5; // Присваиваем 5 к x

elem = document.getElementById("demo"); // Находим элемент
elem.innerHTML = x; // Отображаем x в элементе
Попробуйте сами »

Чтобы понять это, вы должны понимать термин "подъем".

Подъем - это поведение JavaScript по умолчанию, при котором все объявления перемещаются в верхнюю часть текущей области (в верхнюю часть текущего скрипта или текущей функции).


Ключевые слова let и const

Переменные, определенные с помощью let и const, поднимаются в верхнюю часть блока, но не инициализируются.

Смысл: Блок кода знает об этой переменной, но ее нельзя использовать до тех пор, пока она не будет объявлена.

Использование переменной let до ее объявления, приведет к ReferenceError.

Переменная находится в "временной мертвой зоне" с начала блока до тех пор, пока она не будет объявлена:

Пример Это приведет к ReferenceError:
carName = "Вольво";
let carName;
Попробуйте сами »

Использование переменной const до того, как она будет объявлена, является синтаксической ошибкой, поэтому код просто не будет выполняться.

Пример

Этот код не запускается.

carName = "Вольво";
const carName;
Попробуйте сами »

Узнайте больше о let и const в JS Let / Const.



Инициализации JavaScript не поднимаются

JavaScript поднимает только объявления, а не инициализации.

Пример 1 никак not дают тот же результат, как иПример 2:

Пример 1
var x = 5; // Инициализируем x
var y = 7; // Инициализируем y

elem = document.getElementById("demo"); // Находим элемент
elem.innerHTML = x + " " + y; // Отображение x и y
Попробуйте сами »
Пример 2
var x = 5; // Инициализируем x

elem = document.getElementById("demo"); // Находим элемент
elem.innerHTML = x + " " + y; // Отображение x и y

var y = 7; // Инициализируем y
Попробуйте сами »

Имеет ли смысл, что у не определен в последнем примере?

Это потому, что наверх поднимается только объявление (var y), а не инициализация (=7).

Из-за подъема у был объявлен до его использования, но поскольку инициализации не поднимаются, значение у не определен.

Пример 2 совпадает с записью:

Пример
var x = 5; // Инициализируем x
var y; // Объявляем y

elem = document.getElementById("demo"); // Находим элемент
elem.innerHTML = x + " " + y; // Отображаем x и y

y = 7; // Присваиваем 7 к y
Попробуйте сами »

Объявите свои переменные наверху!

Подъем - это (для многих разработчиков) неизвестное или недооцененное поведение JavaScript.

Если разработчик не понимает подъема, программы могут содержать ошибки (errors).

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

Так как JavaScript интерпретирует код именно так, это всегда хорошее правило.

JavaScript в строгом режиме не позволяет использовать переменные, если они не объявлены. Изучите "строгое использование" в следующей главе.



×

Связаться с отделом продаж

Если вы хотите использовать услуги schoolsw3 как образовательное учреждение, команда или предприятие, отправьте нам электронное письмо:
sales@schoolsw3.com

Сообщить об ошибке

Если вы хотите сообщить об ошибке или внести предложение, отправьте нам электронное письмо:
help@schoolsw3.com

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

Авторское право 1999- принадлежит Refsnes Data. Все права защищены. Schoolsw3 работает на SW3.CSS.