diff --git a/index.html b/index.html index 5e60e40..4253ea0 100644 --- a/index.html +++ b/index.html @@ -4,8 +4,65 @@ Практика верстки + - + +
+

Замыкания в JavaScript для начинающих

+

+ Замыкания — это одна из фундаментальных концепций JavaScript, + вызывающая сложности у многих новичков, знать и понимать которую должен каждый JS-программист. + Хорошо разобравшись с замыканиями, вы сможете писать более качественный, эффективный и чистый код. + А это, в свою очередь, будет способствовать вашему профессиональному росту. +

+

+ Материал, перевод которого мы публикуем сегодня, посвящён рассказу о внутренних механизмах замыканий и о том, + как они работают в JavaScript-программах. +

+
+
+

Что такое замыкание?

+

+ Замыкание — это функция, у которой есть доступ к области видимости, сформированной внешней по отношению к ней функции даже после того, + как эта внешняя функция завершила работу. Это значит, что в замыкании могут храниться переменные, + объявленные во внешней функции и переданные ей аргументы. + Прежде чем мы перейдём, собственно, к замыканиям, разберёмся с понятием «лексическое окружение». +

+
+
+

Что такое лексическое окружение?

+

+ Понятие «лексическое окружение» или «статическое окружение» в JavaScript относится к возможности доступа к переменным, + функциям и объектам на основе их физического расположения в исходном коде.
+ Рассмотрим пример: +

+ Пример кода +

+ Здесь у функции inner() есть доступ к переменным, объявленным в её собственной области видимости, в области видимости функции outer() и в глобальной области видимости. + Функция outer() имеет доступ к переменным, объявленным в её собственной области видимости и в глобальной области видимости. +

+

+ Цепочка областей видимости вышеприведённого кода будет выглядеть так: +

+ Пример кода +

+ Обратите внимание на то, что функция inner() окружена лексическим окружением функции outer(), которая, в свою очередь, окружена глобальной областью видимости. + Именно поэтому функция inner() может получить доступ к переменным, объявленным в функции outer() и в глобальной области видимости. +

+
\ No newline at end of file diff --git a/styles.css b/styles.css index 1cbd2e0..5c0c791 100644 --- a/styles.css +++ b/styles.css @@ -1,8 +1,121 @@ -/* Тут пиши основные стили */ +body { + padding-bottom: 100px; +} +nav { + padding-bottom: 50px; +} -@media (max-width: 800px) { -/* Тут пиши стили для мобилки. - Стили применятся только когда страничка будет ≤800px шириной - */ +.paragraph img { + width: 700px; +} + +h1 { + font-family: Arial, serif; + font-size: 42px; + line-height: 44px; +} + +h2 { + font-family: Arial, monospace; + font-size: 34px; + line-height: 39px; +} + +code { + background-color: #f0f0f0; + padding: 3px; + border-radius: 5px; + font-family: "Courier New", monospace; +} + +.paragraph { + margin: 0 0 0 362px; + text-align: left; + font-family: Georgia, monospace; + line-height: 33px; + font-size: 21px; + width: 700px; +} + +nav img { + width: 97px; + padding-inline-start: 38px; + margin: 10px auto 10px 38px; +} + +header { + padding: 0; + margin: 0; + background-color: #faf9f8; + border-bottom: 1px #000000 solid; + border-top: 1px #000000 solid; +} + +header ul { + list-style: none; +} + +header li { + cursor: url("responsive-design/2744EFD6-B878-4DCB-B0D5-526F1B233733/9E1721B2-E123-44D1-BBA7-88E713A6A184@1x.png"), + auto; + font-family: "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Arial, sans-serif; + font-size: 24px; + color: #333333; + text-align: left; + line-height: 36px; + margin-left: 30px; + display: inline; +} + +header li:hover { + text-decoration: underline; +} + +.red { + color: red; +} + +@media screen and (max-width: 800px) { + nav img { + margin: 10px auto 10px 20px; + padding-inline-start: 20px; + width: 101px; + height: 64px; + } + header li { + line-height:25px; + font-size:20px; + margin-left: 20px; + margin-top: 10px; + display: list-item; + } + + header ul { + margin: 0 auto 10px 0; + padding-inline-start: 20px; + } + + .paragraph { + margin: 0 0 0 20px; + padding-inline-start: 20px; + text-align: left; + font-family: Georgia, monospace; + line-height:22px; + font-size: 18px; + width: 95%; + } + .paragraph img { + width: 95%; + } + h1 { + font-family: Arial, serif; + font-size: 26px; + line-height:28px; + } + h2 { + font-family: Arial, monospace; + font-size: 22px; + line-height: 39px; + } } \ No newline at end of file