Hoisting это поведение в JavaScript по умолчанию движущихся деклараций к вершине.
JavaScript декларации водрузили
В JavaScript переменная может быть объявлена после того, как она была использована.
Другими словами; переменная может быть использована до того, как было объявлено.
Пример 1 дает тот же результат , что в примере 2:
Пример 1
x = 5; // Assign 5 to x
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x;
// Display x in the element
var x; // Declare x
Попробуй сам " Пример 2
var x; // Declare x
x = 5; // Assign 5 to x
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x;
// Display x in the element
Попробуй сам " Чтобы понять это, вы должны понимать термин "hoisting" .
Hoisting это поведение в JavaScript по умолчанию перемещения всех деклараций к началу текущей области (в верхней части текущего сценария или текущей функции).
JavaScript инициализация не являются водрузили
JavaScript только тали декларации, а не инициализаций.
Пример 1 не дает такой же результат , как в примере 2:
Пример 1
var x = 5; // Initialize x
var y = 7; // Initialize y
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y; // Display x and y
Попробуй сам " Пример 2
var x = 5; // Initialize x
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y; // Display x and y
var y = 7; // Initialize y
Попробуй сам " Имеет ли смысл, что у не определено в последнем примере?
Это потому, что только декларация (вар у), а не инициализации (= 7) поднимается к вершине.
Из - за hoisting , у объявлена до ее использования, а потому , что не инициализацию водрузили, значение у не определено.
Пример 2 такой же, как написание:
пример
var x = 5; // Initialize x
var y; // Declare y
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y; // Display x and y
y = 7; // Assign 7 to y
Попробуй сам " Объявите переменные На вершине!
Hoisting является (для многих разработчиков) неизвестной или упускать из виду поведение JavaScript.
Если разработчик не понимает hoisting , программы могут содержать ошибки (ошибки).
Чтобы избежать ошибок, всегда объявлять все переменные в начале каждого объема.
Поскольку это, как JavaScript интерпретирует код, это всегда хорошее правило.
JavaScript в строгом режиме не позволяет переменные, которые будут использоваться, если они не объявлены.
Исследование "use strict" в следующей главе.