Описание тега hoisting
Подъем означает, что локальные переменные внутри области видимости функции обрабатываются так, как если бы они были объявлены в начале оценки функции, независимо от того, где они фактически объявлены.
1
ответ
Переменная обратного вызова JSONP, ограниченная аномалия
У меня есть глобальный массив, который я хочу заполнить URL-адресами JPEG в Flickr. Я намерен передать этот массив между функциями. Когда я пытаюсь прочитать содержимое массива (или console.log из main.js:40) из моей функции обратного вызова JASONP,…
30 июн '15 в 14:33
1
ответ
JavaScript использует возврат одной функции внутри другой
У меня есть функция A, которая использует функцию B внутри, я хочу использовать возвращаемую переменную из функции B внутри функции A, но она всегда дает мне неопределенный... Я много искал в Интернете ответы, но я становлюсь безнадежным. заранее fu…
05 мар '13 в 16:51
4
ответа
ES6 переменная области видимости блока javascript, поднимающаяся для заголовка
Подняты ли все переменные области видимости в блоке цикла for над самим заголовком цикла? var x = 4; for(let i = 3; i < x; i++) { let x = 2; ... } Должно ли это приводить к ошибке мертвой зоны на x каждый раз, когда i сравнивается с x в заголовке…
18 фев '17 в 06:18
9
ответов
Переменные, объявленные с помощью let или const, не отображаются в ES6?
Я некоторое время играл с ES6 и заметил, что переменные объявлены с var подняты как положено... console.log(typeof name); // undefined var name = "John"; ... переменные объявлены с let или же const похоже, есть некоторые проблемы с подъемом: console…
04 июл '15 в 10:12
1
ответ
Всегда ли в контексте выполнения Javascript было два этапа (создание и выполнение)?
В JavaScript "Понимание странных частей" происхождение конкретного контекста выполнения было объяснено со ссылкой на два этапа: Фаза создания - объявления имеют приоритет и инициализируются с неопределенными значениями Фаза исполнения - где разрешен…
25 июн '17 в 16:08
0
ответов
Странная переменная не определена?
Хорошо, ребята, поэтому у меня есть этот код: var q=(function(){ var u,q,x; x=616; q=q_construct(); qp_construct(); return q; function q_construct(){ var q,pro; q={ a:1 }; return q; }; function qp_construct(){ console.log('1 ⇒ ',q,x); Object.defineP…
06 июл '16 в 04:52
0
ответов
Подъем JS в условных выражениях не дает ожидаемого результата
Я читаю книгу "Ты не знаешь JS" и читаю эту часть: Автор имеет в виду, что эти функции foo будут перемещены на глобальном уровне, поскольку условные операторы не способны создавать свои собственные области видимости в JS. Таким образом, ожидаемое по…
02 июн '18 в 17:19
3
ответа
"использовать строгое", не останавливая подъем в области действия функции
Моя проблема лежит здесь, я изучаю JavaScript, но совсем не новичок в программировании. Я понимаю подъем, но в строгом режиме это не должно приводить к ошибке и быть пойманным, если 6 назначено для необъявленной переменной или назначено document.get…
31 май '15 в 15:55
2
ответа
Одна и та же переменная объявляется дважды. Какой из них используется? - JAVASCRIPT
Код ниже произведет 8 из-за того, что второе объявление переопределит первое. Ага! Имеет смысл. Пример 1 function foo(){ function bar() { return 3; } return bar(); function bar() { return 8; } } console.log(foo()); // ---> 8 Следующий код произво…
21 дек '17 в 09:58
1
ответ
Подъем и "пусть" в JavaScript
Вопрос: почему это не вызывает ошибку ссылки: console.log(a) let a = 5; но это выдает ошибку ссылки: { console.log(a) let a = 5; } Теперь, если мы используем 'var', то в обоих случаях код будет выполняться и выходить из системы 'undefined', но кто-т…
20 авг '18 в 17:40
6
ответов
Может кто-нибудь объяснить эти определения функций и подъема?
Может кто-нибудь объяснить мне, что происходит в следующих трех примерах? Мои мысли для первого примера, bar не выполняется (это просто объявление функции), поэтому, когда foo выполняется, вывод undefined? Для второго примера bar выполняется так, чт…
06 май '15 в 19:20
3
ответа
Поднимается ли функция, если она определена в условии if?
Итак, предположим, у меня есть что-то вроде этого var x = 1; if (function f(){}) { x += typeof f; } x; Это выводит "1undefined". Я думал, что это должно иметь вывод "1function", потому что функция f(){} должна была быть поднята над if. Это явно не т…
27 июл '15 в 21:57
0
ответов
Javascript: функции / переменные, поднимающиеся в объявлении функций / выражении
Первый вопрос: включены ли переменные и функции в объявлении функции одновременно с глобальными переменными и функциями или в фазе создания локального контекста выполнения? А если ответ второй, как это работает? Если я прав, (глобальный) подъем прои…
18 июн '18 в 16:55
1
ответ
Функциональное выражение с использованием IIFE в качестве параметра?
Ниже работает как задумано var dogName = function animalName(name) { console.log("My name is " + name); } dogName('Scruffy'); (function () { console.log("My name is Fido!"); })(); Если вы закомментируете dogName('Scruffy'); это выводит это My name i…
02 фев '17 в 20:07
1
ответ
Объявление функции внутри условного
В книге, которую вы не знаете, JS: Область применения и замыкания. Вот пример кода, который я не совсем понимаю. "Объявления функций, которые появляются внутри обычных блоков, как правило, поднимаются в объем, а не являются условными, как предполага…
19 апр '17 в 22:47
1
ответ
Почему расположение выражения функции не имеет значения в узле js?
В JavaScript при использовании выражения функции (например, var myFunc = function() {...}), как и любое другое объявление переменной, вы должны определить переменную перед ее использованием. Например, следующий пример не будет работать (приведет к U…
07 дек '15 в 16:47
2
ответа
Почему объекты jQuery в инициализации свойств пусты?
'use strict'; var Controller = function Controller() {}; Controller.init = function() { if (!Controller.PROPERTIE.element || !Controller.PROPERTIE.indicator) { return 'Expected to find [data-controller] and [data-controller-to]'; } Controller._start…
31 авг '15 в 01:44
2
ответа
Должны ли минификаторы JavaScript автоматически объединять объявления var?
Я только что обнаружил, что YUICompressor (2.4.7) не объединяет объявления var. Например, var x = 1; var y = 2; сжимает до var a=1;var b=2; Я предполагаю, что было бы разумно ожидать, что минификатор сможет комбинировать последовательные объявления …
19 мар '12 в 18:11
1
ответ
Я сталкиваюсь с трудностями понимания этого фрагмента кода JS
var myAlerts = []; for (var i = 0; i < 5; i++) { myAlerts.push( function inner() { alert(i); } ); } myAlerts[0](); // 5 myAlerts[1](); // 5 myAlerts[2](); // 5 myAlerts[3](); // 5 myAlerts[4](); // 5 почему все значения в позициях 0-4 в массиве р…
22 июн '15 в 04:21
1
ответ
Избегать отставания, вызванного подъемом
Я хочу войти 'постучал' и выполнить HUD как можно скорее, но oauth_upload_photo заставляет его отставать (очевидно из-за подъема). Как я могу мгновенно привязать HUD?? var submit_post = function submit_post(){ console.log('tapped'); // Show HUD plug…
03 сен '12 в 21:52