Я новичок в Javascript. Я изучаю концепцию подъема в Javascript.
Основываясь на руководствах по Javacsript на сайте Mozilla , я наткнулся на это слово hoisting
. Согласно этим учебникам, переменные в JavaScript - это то, что вы можете ссылаться на переменную, объявленную позже, без получения исключения . Но мой вопрос заключается в том, при каких обстоятельствах целесообразно использовать подъем в клиентском Javascript или почему мы должны использовать подъем в Javascript. Каковы его преимущества.
javascript
Рудра
источник
источник
Ответы:
Я никогда не слышал термин "подъем". Если вы ссылаетесь на это использование подъема Беном Черри: http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html , то, насколько я могу судить, он просто повторяет Дугласа Крокфорда из Javascript: Хорошие части , и говорят, что вы никогда не должны использовать подъем . В конце он утверждает, что все переменные должны быть объявлены в верхней части вашей функции (как предлагают Крокфорд и JSLint).
Или, по словам г-на ChristopherBrown, это, по-видимому, не функция, которую нужно использовать , а просто изюминка, связанная с тем, как браузер интерпретирует Javascript.
Итак, вкратце: никогда и никуда .
источник
Подъем описывает функцию того, как Javascript интерпретируется браузером, и это не такая особенность, которую следует использовать.
При интерпретации Javascript браузеры отображают переменные уровня функции в начале функции. Пример:
В опубликованном коде обе переменные «two» и «result» существуют в начале области действия функции (очевидно, так как они там объявлены). Однако, поскольку браузеры «поднимают» переменные, следующее становится допустимым кодом Javascript ,
В итоге получается, что перед объявлением их используются переменные, что может привести к путанице, особенно с переменными глобальной области видимости. Пример:
Чтобы избежать путаницы, объявите свои переменные в верхней части функции.
источник
Почему?
У JavaScript нет Block Scope , это должно объяснить, почему все должно подниматься наверх.
Это полезно?
Если вы предпочитаете это:
Вместо этого:
Тогда это полезно. Даже если вы этого не замечаете!
Clearification
Первый пример переведет что-то вроде этого:
источник