JavaScript'те көтөрүү деген эмне?
JavaScript'те көтөрүү деген эмне?

Video: JavaScript'те көтөрүү деген эмне?

Video: JavaScript'те көтөрүү деген эмне?
Video: JavaScript деген эмне? 2024, Ноябрь
Anonim

Көтөрүү болуп саналат JavaScript механизм, мында өзгөрмөлөр жана функция декларациялары коддун аткарылышынын алдында алардын масштабынын жогору жагына жылдырылат. Сөзсүз түрдө бул функциялар жана өзгөрмөлөр кайсы жерде жарыя кылынбасын, алардын масштабы глобалдуу же жергиликтүү экендигине карабастан, алардын чөйрөсүнүн эң жогору жагына жылдырылат дегенди билдирет.

Ошо сыяктуу эле, сиз мисал менен JavaScript'те эмнени көтөрүү деп сурасаңыз болот?

Көтөрүү болуп саналат JavaScript котормочунун бардык өзгөрмөлөрдү жана функциялык декларацияларды учурдагы масштабдын жогору жагына жылдыруу аракети. (function() { var foo; var bar; var baz; foo = 1; alert(foo + " " + bar + " " + baz); bar = 2; baz = 3; })(); Эми экинчи эмне үчүн мааниси бар мисал өзгөчөлүк жараткан эмес.

Ошо сыяктуу эле, JavaScript'те эмнеге уруксат берилет? Description. болсун сизге блоктун масштабы менен чектелген өзгөрмөлөрдү жарыялоо артыкчылыгын берет, var дан айырмаланып туюнтма билдирүүсү. var, тескерисинче, блоктун масштабына карабастан, глобалдык өзгөрмөнү аныктаган ачкыч сөз. Азыр, болсун Мен сага алардын кандайча айырмаланарын көрсөтөм.

Демек, эмне үчүн JavaScript көтөрүлүп жатат?

Негизи көтөрүү компиляциялоодо эмне болорун түшүндүрүү үчүн ойлоп табылган түшүнүк javascript . чечмелеп баштоо алдында javascript компилятор ар бир функциядан өтүп, аталган нерселерди аныктайт жана функцияларды ата-эне функцияларынын чөйрөсүнөн көрүү мүмкүнчүлүгүн берүү үчүн ошол чөйрөлөрдөгүлөрдү жарыялайт.

VAR көтөрүлөбү?

JavaScript кыймылдаткычы баарын дарылайт өзгөрмө колдонуу менен декларациялар var ” алар функционалдык чөйрөнүн (эгерде функциянын ичинде жарыя кылынса) же глобалдык чөйрөнүн (эгерде функциянын тышында жарыя кылынса) жогору жагында жарыяланып жаткандай, иш жүзүндө декларация кайсы жерде болгонуна карабастан. Бул негизинен көтөрүү ”.

Сунушталууда: