ΠžΠ±Π»Π°ΡΡ‚ΡŒ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ: Β§ ΠžΠ±Π»Π°ΡΡ‚ΡŒ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

2

ΠžΠ±Π»Π°ΡΡ‚ΡŒ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ — ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ энциклопСдия для студСнтов

ΠžΠŸΠ Π•Π”Π•Π›Π•ΠΠ˜Π•

ΠžΠ±Π»Π°ΡΡ‚ΡŒΡŽ опрСдСлСния ΠΈΠ»ΠΈ области Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ \(\ y=f(x) \) являСтся мноТСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ x, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ значСния \(\ y=f(x) \).

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ — \(\ D(f) \) ΠΈΠ»ΠΈ \(\ D(y) \)

Поиск области дСйствия Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π‘Ρ…Π΅ΠΌΠ° поиска области опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

Если \(\ f(x) \) являСтся ΠΌΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½ΠΎΠΌ, Ρ‚ΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ \(\ y=f(x) \) Π±ΡƒΠ΄Π΅Ρ‚ мноТСством всСх вСщСствСнных чисСл.

Если \(\ f(x) \)- Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ Π΄Ρ€ΠΎΠ±ΡŒ, Ρ‚ΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π΅ΡΡ‚ΡŒ мноТСство всСх вСщСствСнных чисСл, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚Π΅Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ E, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π½Π°ΠΌΠ΅Π½Π°Ρ‚Π΅Π»ΡŒ Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ.

Если функция ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄ \(\ y=\sqrt{f(x)} \),Ρ‚ΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ опрСдСлСния являСтся мноТСство Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ нСравСнства \(\ f(x) \geq 0 \)

Если функция ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄ \(\ y=\frac{g(x)}{\sqrt{f(x)}} \) , Π³Π΄Π΅ \(\ g(x) \) — Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½, Ρ‚ΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ опрСдСлСния Π΅ΡΡ‚ΡŒ мноТСство Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ нСравСнства \(\ f(x)>0 \) .

{2}-3 x+2=0 \) По Ρ‚Π΅ΠΎΡ€Π΅ΠΌΠ΅ Π’Π΅Ρ‚Π°: \(\ x_{1}+x_{2}=3 ; x_{1} \cdot x_{2}=2 \),поэтому \(\ x_{1}=1, x_{2}=2 \) .Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, нСравСнство ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π²ΠΈΠ΄

\(\ (x-1)(x-2) \geq 0 \)

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΡ€Π½ΠΈ Π½Π° числовой оси ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π·Π½Π°ΠΊ нСравСнства Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°Ρ….

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, \(\ D\left(y_{2}\right) : x \in(-\infty, 1] \cup[2,+\infty) \)

3) Ѐункция \(\ y_{3}=\frac{2 x-7}{\sqrt{3 x+21}} \) являСтся Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ являСтся ΠΌΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½ΠΎΠΌ. ΠžΠ±Π»Π°ΡΡ‚ΡŒΡŽ ΠΌΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½Π° являСтся мноТСство вСщСствСнных чисСл R. Π’ Π·Π½Π°ΠΌΠ΅Π½Π°Ρ‚Π΅Π»Π΅ ΠΊΠΎΡ€Π΅Π½ΡŒ, Π΅Π³ΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ находится ΠΈΠ· систСмы

\(\ \left\{\begin{array}{l}{3 x+21 \geq 0,} \\ {3 x+21 \neq 0,}\end{array} \Rightarrow 3 x+21>0 \Rightarrow 3 x>-21 \Rightarrow x>-7\right. \)

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, \(\ D\left(y_{3}\right) : x \in(-7,+\infty) \)

  • ΠžΡ‚Π²Π΅Ρ‚

    \(\ D\left(y_{1}\right) : x \in(-\infty, 5) \cup(5,+\infty) \)

    \(\ D\left(y_{2}\right) : x \in(-\infty, 1] \cup[2,+\infty) \)

    \(\ D\left(y_{3}\right) : x \in(-7,+\infty) \)

    ΠŸΠ Π˜ΠœΠ•Π  2

  • Π—Π°Π΄Π°Ρ‡Π°

    НайдитС ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

    \(\ y_{1}=\sqrt{3^{2 x-5}-1} ; 2 ) y_{2}=\sqrt{-\log _{2} x+1} ; 3 ) y_{3}=\log _{x}(x-0,5) \)

  • РСшСниС

    1) Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ \(\ y_{1}=\sqrt{3^{2 x-5}-1} \) ,ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠΌ нСравСнство

    \(\ 3^{2 x-5}-1>0 \Rightarrow 3^{2 x-5}>1 \Rightarrow 3^{2 x-5}>3^{0} \)

    ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ основаниС стСпСни \(\ 3>1 \), ΠΌΡ‹ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠΌ ΠΊ нСравСнству

    \(\ 2 x-5>0 \Rightarrow 2 x>5 \Rightarrow x>2,5 \)

    Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, \(\ D\left(y_{1}\right) : x \in(2,5 ;+\infty) \)

    2) Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ \(\ y_{2}=\sqrt{-\log _{2} x+1} \) ,Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ радиус Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Π° сублогарифмичСская функция Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ. БущСствуСт систСма нСравСнств

    \(\ \left\{\begin{array}{l}{-\log _{2} x+1 \geq 0} \\ {x>0}\end{array}\right. \)

    ΠœΡ‹ Ρ€Π΅ΡˆΠ°Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ нСравСнство ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ

    \(\ -\log _{2} x+1 \geq 0 \Rightarrow \log _{2} x \leq 1 \)

    Богласно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌΠ° ΠΌΡ‹ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠΌ ΠΊ нСравСнству

    \(\ x \leq 2 \)

    Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, искомая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ опрСдСлСния \(\ D\left(y_{2}\right) : x \in(0,2] \).

    3) Учитывая ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ логарифмичСской Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠ±Π»Π°ΡΡ‚ΡŒ опрСдСлСния \(\ y_{3}=\log _{x}(x-0,5) \).Π½Π°ΠΉΡ‚ΠΈ ΠΈΠ· систСмы

    \(\ \left\{\begin{array}{l}{x>0} \\ {x \neq 1,} \\ {x-0,5>0}\end{array} \Rightarrow\right. \left\{\begin{array}{l}{x>0} \\ {x \neq 1,} \\ {x>0,5}\end{array} \Rightarrow\right. \left\{\begin{array}{l}{x \neq 1} \\ {x>0,5}\end{array} \Rightarrow\right. (0,5 ; 1) \cup(1 ;+\infty) \)

    Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ \(\ D\left(y_{3}\right) : x \in(0,5 ; 1) \cup(1 ;+\infty) \)

  • ΠžΡ‚Π²Π΅Ρ‚

    \(\ D\left(y_{1}\right) : x \in(2,5 ;+\infty) \)

    \(\ D\left(y_{2}\right) : x \in(0,2] \)

    \(\ D\left(y_{3}\right) : x \in(0,5 ; 1) \cup(1 ;+\infty) \)

  • Π€ΠΈΠ·ΠΈΠΊΠ°

    166

    Π Π΅ΠΊΠ»Π°ΠΌΠ° ΠΈ PR

    31

    ПСдагогика

    80

    ΠŸΡΠΈΡ…ΠΎΠ»ΠΎΠ³ΠΈΡ

    72

    Боциология

    7

    Астрономия

    9

    Биология

    30

    ΠšΡƒΠ»ΡŒΡ‚ΡƒΡ€ΠΎΠ»ΠΎΠ³ΠΈΡ

    86

    Экология

    8

    ΠŸΡ€Π°Π²ΠΎ ΠΈ ΡŽΡ€ΠΈΡΠΏΡ€ΡƒΠ΄Π΅Π½Ρ†ΠΈΡ

    36

    ΠŸΠΎΠ»ΠΈΡ‚ΠΎΠ»ΠΎΠ³ΠΈΡ

    13

    Π­ΠΊΠΎΠ½ΠΎΠΌΠΈΠΊΠ°

    49

    Ѐинансы

    9

    Π˜ΡΡ‚ΠΎΡ€ΠΈΡ

    16

    Ѐилософия

    8

    Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

    20

    ΠŸΡ€Π°Π²ΠΎ

    35

    Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

    6

    ЭкономичСская тСория

    7

    ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Π½Ρ‚

    719

    ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°

    338

    Π₯имия

    20

    ΠœΠΈΠΊΡ€ΠΎ- ΠΈ макроэкономика

    1

    ΠœΠ΅Π΄ΠΈΡ†ΠΈΠ½Π°

    5

    ГосударствСнноС ΠΈ ΠΌΡƒΠ½ΠΈΡ†ΠΈΠΏΠ°Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅

    2

    ГСография

    542

    Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Π°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

    2

    Аудит

    11

    Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΆΠΈΠ·Π½Π΅Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

    3

    АрхитСктура ΠΈ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ

    1

    БанковскоС Π΄Π΅Π»ΠΎ

    1

    Π Ρ‹Π½ΠΎΠΊ Ρ†Π΅Π½Π½Ρ‹Ρ… Π±ΡƒΠΌΠ°Π³

    6

    ΠœΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½Ρ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ

    2

    ΠœΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³

    238

    ΠšΡ€Π΅Π΄ΠΈΡ‚

    3

    Π˜Π½Π²Π΅ΡΡ‚ΠΈΡ†ΠΈΠΈ

    2

    Журналистика

    1

    ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ»ΠΎΠ³ΠΈΡ

    15

    Π­Ρ‚ΠΈΠΊΠ°

    9

    Π€ΠΎΡ€ΠΌΡƒΠ»Ρ‹ диффСрСнцирования ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π”ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° НСвыроТдСнная ΠΈ выроТдСнная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ ΠΈ ΠΈΡ… свойства

    Π£Π·Π½Π°Ρ‚ΡŒ Ρ†Π΅Π½Ρƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹

    Π£Π·Π½Π°ΠΉ Ρ†Π΅Π½Ρƒ

    своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹

    Имя

    Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹Π§Π°ΡΡ‚ΡŒ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ°Π”ΠΈΠΏΠ»ΠΎΠΌΠ½Π°ΡΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°ΡΠ Π΅ΡˆΠ΅Π½ΠΈΠ΅ задачРСфСратНаучно — ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°ΡΠžΡ‚Ρ‡Π΅Ρ‚ ΠΏΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ΠžΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° билСтыВСст/экзамСн onlineΠœΠΎΠ½ΠΎΠ³Ρ€Π°Ρ„ΠΈΡΠ­ΡΡΠ΅Π”ΠΎΠΊΠ»Π°Π΄ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ‚Π΅ΠΊΡΡ‚Π°ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΉ Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΠ Π΅Ρ†Π΅Π½Π·ΠΈΡΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄Π Π΅ΠΏΠ΅Ρ‚ΠΈΡ‚ΠΎΡ€Π‘ΠΈΠ·Π½Π΅Ρ-ΠΏΠ»Π°Π½ΠšΠΎΠ½ΡΠΏΠ΅ΠΊΡ‚Ρ‹ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° качСстваЭкзамСн Π½Π° сайтСАспирантский Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠœΠ°Π³ΠΈΡΡ‚Π΅Ρ€ΡΠΊΠ°ΡΠΠ°ΡƒΡ‡Π½Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡΠΠ°ΡƒΡ‡Π½Ρ‹ΠΉ трудВСхничСская рСдакция тСкстаЧСртСТ ΠΎΡ‚ Ρ€ΡƒΠΊΠΈΠ”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ΠŸΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ ΠΊ защитСВСзисный ΠΏΠ»Π°Π½Π Π΅Ρ‡ΡŒ ΠΊ Π΄ΠΈΠΏΠ»ΠΎΠΌΡƒΠ”ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° Π·Π°ΠΊΠ°Π·Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠžΡ‚Π·Ρ‹Π² Π½Π° Π΄ΠΈΠΏΠ»ΠΎΠΌΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ Π² Π’ΠΠšΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ Π² ScopusΠ”ΠΈΠΏΠ»ΠΎΠΌ MBAΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈΠšΠΎΠΏΠΈΡ€Π°ΠΉΡ‚ΠΈΠ½Π³Π”Ρ€ΡƒΠ³ΠΎΠ΅

    ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽ Β ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ Β ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

    Подпишись Π½Π° рассылку, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± акциях

    Ѐункция

    .

    Какова ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² JavaScript?

    TLDR

    JavaScript ΠΈΠΌΠ΅Π΅Ρ‚ Π»Π΅ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ (Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ статичСской) ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΈ замыкания. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, просмотрСв исходный ΠΊΠΎΠ΄.

    Π§Π΅Ρ‚Ρ‹Ρ€Π΅ области дСйствия:

    1. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ β€” Π²ΠΈΠ΄Π½Π° всСм
    2. Ѐункция — Π²ΠΈΠ΄Π½Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΈ Π΅Π΅ ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π±Π»ΠΎΠΊΠΎΠ²)
    3. Π‘Π»ΠΎΠΊ — Π²ΠΈΠ΄Π΅Π½ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° (ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π±Π»ΠΎΠΊΠΎΠ²)
    4. ΠœΠΎΠ΄ΡƒΠ»ΡŒ — Π²ΠΈΠ΄Π΅Π½ Π²Π½ΡƒΡ‚Ρ€ΠΈ модуля

    Π’Π½Π΅ особых случаСв глобальной области ΠΈ области модуля ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ с использованиСм var (ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ), let (ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия Π±Π»ΠΎΠΊΠ°) ΠΈ const (ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия Π±Π»ΠΎΠΊΠ°). Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΎΡ€ΠΌ объявлСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΈΠΌΠ΅ΡŽΡ‚ Π±Π»ΠΎΡ‡Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости Π² строгом Ρ€Π΅ΠΆΠΈΠΌΠ΅.

    ΠžΠ±Π·ΠΎΡ€

    ΠžΠ±Π»Π°ΡΡ‚ΡŒ дСйствия β€” это ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ дСйствуСт ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€.

    ЛСксичСская срСда β€” это сопоставлСниС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ связанными с Π½ΠΈΠΌΠΈ значСниями.

    ΠžΠ±Π»Π°ΡΡ‚ΡŒ дСйствия формируСтся ΠΈΠ· связанной влоТСнности лСксичСских срСд, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ влоТСнности соотвСтствуСт лСксичСской срСдС Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ контСкста выполнСния.

    Π­Ρ‚ΠΈ связанныС лСксичСскиС срСды ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ «Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ» области видимости. Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° β€” это процСсс поиска Π² этой Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.

    Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° происходит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ: Π½Π°Ρ€ΡƒΠΆΡƒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, внСшнСС лСксичСскоС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Β«Π²ΠΈΠ΄Π΅Ρ‚ΡŒΒ» Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ лСксичСскоС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅.

    БущСствуСт Ρ‚Ρ€ΠΈ Π²Π°ΠΆΠ½Ρ‹Ρ… Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π² JavaScript:

    1. Как Π±Ρ‹Π» объявлСн ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€
    2. Π“Π΄Π΅ Π±Ρ‹Π» объявлСн ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€
    3. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ Π² строгом ΠΈΠ»ΠΈ нСстрогом Ρ€Π΅ΠΆΠΈΠΌΠ΅

    НСкоторыС ΠΈΠ· способов объявлСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ²:

    1. var , let ΠΈ const
    2. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
    3. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π±Π»ΠΎΠΊΠ° Π·Π°Ρ…Π²Π°Ρ‚Π°
    4. ОбъявлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
    5. Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ выраТСния
    6. НСявно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ свойства глобального ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Ρ‚. Π΅. ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ var Π² нСстрогом Ρ€Π΅ΠΆΠΈΠΌΠ΅)
    7. ΠΈΠΌΠΏΠΎΡ€Ρ‚ выписки
    8. ΠΎΡ†Π΅Π½ΠΊΠ°

    НСкоторыС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ мСстополоТСний ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹:

    1. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ контСкст
    2. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ
    3. Рядовой блок
    4. ВСрхняя Ρ‡Π°ΡΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ структуры (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ†ΠΈΠΊΠ», if, while ΠΈ Ρ‚. Π΄.)
    5. ΠšΠΎΡ€ΠΏΡƒΡ конструкции управлСния
    6. ΠœΠΎΠ΄ΡƒΠ»ΠΈ

    Π‘Ρ‚ΠΈΠ»ΠΈ объявлСний

    var

    Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ с использованиСм var , ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия , Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ случаСв, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ нСпосрСдствСнно Π² глобальном контСкстС, ΠΈ Π² этом случаС ΠΎΠ½ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ свойства глобального ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΡ… использования Π² функциях eval .

    let ΠΈ const

    Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ с использованиСм let ΠΈ const ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия Π±Π»ΠΎΠΊΠ°

    , Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ случаСв, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ нСпосрСдствСнно Π² глобальном контСкстС, ΠΈ Π² этом случаС ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: let , const ΠΈ var всС подняты. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈΡ… логичСская позиция опрСдСлСния являСтся Π²Π΅Ρ€ΡˆΠΈΠ½ΠΎΠΉ ΠΈΡ… ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ области (Π±Π»ΠΎΠΊΠ° ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ). Однако ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ с использованиСм let ΠΈ const , Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Ρ‹ ΠΈΠ»ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ Ρ‚ΠΎΡ‡ΠΊΡƒ объявлСния Π² исходном ΠΊΠΎΠ΄Π΅. ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ извСстСн ΠΊΠ°ΠΊ врСмСнная мСртвая Π·ΠΎΠ½Π°.

     функция f() {
        функция Π³() {
            console.log(x)
        }
        ΠΏΡƒΡΡ‚ΡŒ Ρ… = 1
        Π³()
    }
    f() // 1, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ x поднимаСтся, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ объявлСн с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ `let`! 

    ИмСна ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

    ИмСна ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚Π΅Π»ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² этом Π΅ΡΡ‚ΡŒ нСбольшая ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ списку ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π° Π½Π΅ ΠΏΠΎ Ρ‚Π΅Π»Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

    ОбъявлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

    ОбъявлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ Π±Π»ΠΎΡ‡Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π² строгом Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия Π² нСстрогом Ρ€Π΅ΠΆΠΈΠΌΠ΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: нСстрогий Ρ€Π΅ΠΆΠΈΠΌ β€” это слоТный Π½Π°Π±ΠΎΡ€ эмСрдТСнтных ΠΏΡ€Π°Π²ΠΈΠ», основанных Π½Π° ΠΏΡ€ΠΈΡ‡ΡƒΠ΄Π»ΠΈΠ²Ρ‹Ρ… историчСских рСализациях Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ².

    ВыраТСния ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

    ВыраТСния ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ самими собой (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с Ρ†Π΅Π»ΡŒΡŽ рСкурсии).

    НСявно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ свойства глобального ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

    Π’ нСстрогом Ρ€Π΅ΠΆΠΈΠΌΠ΅ нСявно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ свойства глобального ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠΌΠ΅ΡŽΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ находится Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ областСй дСйствия. Π’ строгом Ρ€Π΅ΠΆΠΈΠΌΠ΅ это Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ.

    eval

    Π’ строках eval ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ с использованиСм var Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΈΠ»ΠΈ, Ссли eval ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ косвСнно, ΠΊΠ°ΠΊ свойства глобального ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ ReferenceError, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π°

    x , y ΠΈ z Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ значСния Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f .

     функция f() {
        пСрСмСнная Ρ… = 1
        ΠΏΡƒΡΡ‚ΡŒ Ρƒ = 1
        постоянная Π³ = 1
    }
    console. log(typeof x) // Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ (ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ var ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия!)
    console.log(typeof y) // Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСдставляСт собой Π±Π»ΠΎΠΊ)
    console.log(typeof z) // Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСдставляСт собой Π±Π»ΠΎΠΊ) 

    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ ReferenceError для y ΠΈ z , Π½ΠΎ Π½Π΅ для x , ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ x Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Π±Π»ΠΎΠΊΠΎΠΌ. Π‘Π»ΠΎΠΊΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅Π»Π° структур управлСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ , Ссли , для ΠΈ , ΠΏΠΎΠΊΠ° , Π²Π΅Π΄ΡƒΡ‚ сСбя Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ.

     {
        пСрСмСнная Ρ… = 1
        ΠΏΡƒΡΡ‚ΡŒ Ρƒ = 1
        постоянная Π³ = 1
    }
    console.log(x) // 1
    console.log(typeof y) // Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ `y` ΠΈΠΌΠ΅Π΅Ρ‚ Π±Π»ΠΎΡ‡Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости
    console.log(typeof z) // Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ `z` ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π±Π»ΠΎΠΊΠ° 

    Π’ дальнСйшСм x Π²ΠΈΠ΄Π½Ρ‹ Π²Π½Π΅ Ρ†ΠΈΠΊΠ»Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ var ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия:

     for(var x = 0; x < 5; ++x) {}
    console.log(x) // 5 (ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это Π²Π½Π΅ Ρ†ΠΈΠΊΠ»Π°!) 

    . ..ΠΈΠ·-Π·Π° Ρ‚Π°ΠΊΠΎΠ³ΠΎ повСдСния Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ остороТным ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ var Π² Ρ†ΠΈΠΊΠ»Π°Ρ…. Π—Π΄Π΅ΡΡŒ объявлСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ экзСмпляр ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ x , ΠΈ ΠΎΠ½ логичСски находится Π²Π½Π΅ Ρ†ΠΈΠΊΠ»Π°.

    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ 5 , ΠΏΡΡ‚ΡŒ Ρ€Π°Π·, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ 5 Π² ΡˆΠ΅ΡΡ‚ΠΎΠΉ Ρ€Π°Π· для console.log Π²Π½Π΅ Ρ†ΠΈΠΊΠ»Π°:

     for(var x = 0; x < 5; ++x) {
        setTimeout(() => console.log(x)) // закрываСтся ΠΏΠΎ `x`, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ логичСски располоТСн Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ области, Π½Π°Π΄ Ρ†ΠΈΠΊΠ»ΠΎΠΌ
    }
    console.log(x) // ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π²ΠΈΠ΄Π΅Π½ Π²Π½Π΅ Ρ†ΠΈΠΊΠ»Π° 

    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ undefined , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ x являСтся Π±Π»ΠΎΡ‡Π½Ρ‹ΠΌ. ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ асинхронно. НовоС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ для ΠΏΡƒΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ каТдая анонимная функция закрываСтся ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΈΠΌΠ΅Π½Π΅ΠΌ x (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ var ), поэтому ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‚ΡΡ Ρ†Π΅Π»Ρ‹Π΅ числа ΠΎΡ‚ 0 Π΄ΠΎ 4 . :

     for(let x = 0; Ρ… < 5; ++Ρ…) {
        setTimeout(() => console.log(x)) // объявлСния `let` ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, поэтому замыкания Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅
    }
    console.log(typeof x) // undefined 

    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ НЕ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ ReferenceError , Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ x Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Π±Π»ΠΎΠΊΠΎΠΌ; ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ undefined , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ пСрСмСнная Π½Π΅ Π±Ρ‹Π»Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° (ΠΈΠ·-Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° if ).

     Ссли(лоТь) {
        пСрСмСнная Ρ… = 1
    }
    console.log(x) // здСсь `x` Π±Ρ‹Π» объявлСн, Π½ΠΎ Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ 

    ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ, объявлСнная Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ†ΠΈΠΊΠ»Π° for с использованиСм let , ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Ρ‚Π΅Π»ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π°:

     for (ΠΏΡƒΡΡ‚ΡŒ Ρ… = 0; Ρ… < 10; ++Ρ…) {}
    console.log(typeof x) // Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ `x` ΠΈΠΌΠ΅Π΅Ρ‚ Π±Π»ΠΎΡ‡Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости 

    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ ReferenceError , ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ x ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Π±Π»ΠΎΠΊΠΎΠΌ:

     if(false) {
        ΠΏΡƒΡΡ‚ΡŒ Ρ… = 1
    }
    console. log(typeof x) // Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ `x` ΠΈΠΌΠ΅Π΅Ρ‚ Π±Π»ΠΎΡ‡Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости 

    ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ с использованиСм var , let ΠΈΠ»ΠΈ const , относятся ΠΊ модулям:

     // module1.js
    пСрСмСнная Ρ… = 0
    функция экспорта f() {}
    //module2.js
    ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ f ΠΈΠ· 'module1.js'
    console.log(x) // Π²Ρ‹Π΄Π°Π΅Ρ‚ ReferenceError
     

    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ свойство глобального ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ с использованиСм var Π² глобальном контСкстС, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ свойства ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ:

     var x = 1
    console.log(window.hasOwnProperty('x')) // true 

    let ΠΈ const Π² глобальном контСкстС Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ свойства ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, Π½ΠΎ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΈΠΌΠ΅ΡŽΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия:

     let x = 1
    console.log(window.hasOwnProperty('x')) // false 

    ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π² Ρ‚Π΅Π»Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

     функция f(x) {}
    console.log(typeof x) // Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ `x` ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ 

    ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π±Π»ΠΎΠΊΠ° catch ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ Ρ‚Π΅Π»ΠΎΠΌ Π±Π»ΠΎΠΊΠ° catch:

     try {} catch(e) {}
    console. log(typeof e) // Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия `e` ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Π±Π»ΠΎΠΊΠΎΠΌ catch 

    ВыраТСния ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ самим Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ:

     (function foo() { console.log(foo) }) ()
    console.log(typeof foo) // Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ `foo` ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ собствСнным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ 

    Π’ нСстрогом Ρ€Π΅ΠΆΠΈΠΌΠ΅ нСявно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ свойства глобального ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠΌΠ΅ΡŽΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия. Π’ строгом Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

     x = 1 // нСявно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ свойство глобального ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Π±Π΅Π· "var"!)
    console.log(x) // 1
    console.log(window.hasOwnProperty('x')) // true 

    Π’ нСстрогом Ρ€Π΅ΠΆΠΈΠΌΠ΅ объявлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия. Π’ строгом Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π±Π»ΠΎΡ‡Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия.

     'ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ строго'
    {
        функция foo() {}
    }
    console.log(typeof foo) // Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ `foo` ΠΈΠΌΠ΅Π΅Ρ‚ Π±Π»ΠΎΡ‡Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости 

    ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹

    ΠžΠ±Π»Π°ΡΡ‚ΡŒ дСйствия опрСдСляСтся ΠΊΠ°ΠΊ лСксичСская ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ дСйствуСт ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€.

    Π’ JavaScript ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-функция ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ ссылку [[Environment]] , которая являСтся ссылкой Π½Π° лСксичСскоС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ контСкста выполнСния (Ρ„Ρ€Π΅ΠΉΠΌ стСка), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ Π±Ρ‹Π» создан.

    ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ вызываСтся скрытый ΠΌΠ΅Ρ‚ΠΎΠ΄ [[Call]] . Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ создаСт Π½ΠΎΠ²Ρ‹ΠΉ контСкст выполнСния ΠΈ устанавливаСт связь ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΎΠ²Ρ‹ΠΌ контСкстом выполнСния ΠΈ лСксичСским ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎ дСлаСтся ΠΏΡƒΡ‚Π΅ΠΌ копирования [[Environment]] Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎ внСшнСС ΠΏΠΎΠ»Π΅ ссылки Π½Π° лСксичСскоС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ контСкста выполнСния.

    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ эта связь ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΎΠ²Ρ‹ΠΌ контСкстом выполнСния ΠΈ лСксичСским ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° называСтся Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠ΅ΠΌ.

    Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² JavaScript ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия рСализуСтся Ρ‡Π΅Ρ€Π΅Π· лСксичСскиС окруТСния, связанныС Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π² Β«Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒΒ» внСшними ссылками. Π­Ρ‚Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° лСксичСских ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ называСтся Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ области дСйствия, ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° происходит ΠΏΡƒΡ‚Π΅ΠΌ поиска ΠΏΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.

    Π£Π·Π½Π°ΠΉΡ‚Π΅ большС.

    Scope Rules in Functions β€” Learning Python [Книга]

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ приступили ΠΊ написанию собствСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΈΠΌΠ΅Π½Π° Π² Python. Когда Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ имя Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Python создаСт, измСняСт ΠΈΠ»ΠΈ ΠΈΡ‰Π΅Ρ‚ имя Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ извСстно ΠΊΠ°ΠΊ пространство ΠΈΠΌΠ΅Π½ β€” мСсто, Π³Π΄Π΅ ΠΆΠΈΠ²ΡƒΡ‚ ΠΈΠΌΠ΅Π½Π°. Как ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΈΠΌΠ΅Π½Π° Π² Python Spring Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚, ΠΊΠΎΠ³Π΄Π° ΠΈΠΌ присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π° Π½Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π·Π°Ρ€Π°Π½Π΅Π΅, Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ присваиваниС имя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ Π΅Π³ΠΎ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ пространством ΠΈΠΌΠ΅Π½. Помимо ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ΄, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ слой пространства ΠΈΠΌΠ΅Π½ ΠΊ ваши ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ β€” ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π½Π°, Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, связанный с пространством ΠΈΠΌΠ΅Π½ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ.

    Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ Π½Π°Ρ‡Π°Π»ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, вСсь ΠΊΠΎΠ΄ Π±Ρ‹Π» написан Π½Π° Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ модуля, поэтому ΠΈΠΌΠ΅Π½Π° Π»ΠΈΠ±ΠΎ ΠΆΠΈΠ»ΠΈ Π² самом ΠΌΠΎΠ΄ΡƒΠ»Π΅, Π»ΠΈΠ±ΠΎ Π±Ρ‹Π»ΠΈ встроСны Π² Python прСдопрСдСляСт (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ). [29] Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ пространство ΠΈΠΌΠ΅Π½ (ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ Π° scope ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈΠΌΠΈ ΠΈΠΌΠ΅Π½Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ снаруТи (Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ). ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ локальная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ , Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ глобальная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ . Π­Ρ‚ΠΈ Π΄Π²Π΅ области связаны ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

    ΠžΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ прСдставляСт собой Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия

    ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ прСдставляСт собой Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия β€” пространство ΠΈΠΌΠ΅Π½, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ создаСтся (назначаСтся) Π½Π° Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ„Π°ΠΉΠ»Π° модуля live.

    ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” это новая локальная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ

    ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²Ρ‹ создаСтС Π½ΠΎΠ²ΡƒΡŽ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ β€” пространство ΠΈΠΌΠ΅Π½, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΆΠΈΠ²ΡƒΡ‚ ΠΈΠΌΠ΅Π½Π°, созданныС Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

    НазначаСмыС ΠΈΠΌΠ΅Π½Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Ссли ΠΎΠ½ΠΈ Π½Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ

    По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ всС ΠΈΠΌΠ΅Π½Π°, Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ (пространство ΠΈΠΌΠ΅Π½, связанноС с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π²Ρ‹Π·ΠΎΠ²). Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ находится Π½Π° Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, содСрТащий Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, объявив Π΅Π³ΠΎ Π² Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

    ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ встроСнными

    ИмСна, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π±Ρ‹Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ (Π² пространствС ΠΈΠΌΠ΅Π½ ΠΎΠ±ΡŠΠ΅ΠΌΠ»ΡŽΡ‰Π΅Π³ΠΎ модуля) ΠΈΠ»ΠΈ встроСнными (Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ Python прСдоставляСт).

    Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ: ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ LGB

    Если ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Ρ€Π°Π·Π΄Π΅Π» Π·Π²ΡƒΡ‡ΠΈΡ‚ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎ, Π½Π° самом Π΄Π΅Π»Π΅ ΠΎΠ½ сводится ΠΊ Ρ‚Ρ€Π΅ΠΌ простыС ΠΏΡ€Π°Π²ΠΈΠ»Π°:

    • Бсылки Π½Π° ΠΈΠΌΠ΅Π½Π° ΠΈΡ‰ΡƒΡ‚ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€Π΅Ρ… областСй: Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ, Π·Π°Ρ‚Π΅ΠΌ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ, Π·Π°Ρ‚Π΅ΠΌ встроСнный.

    • ΠŸΡ€ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

    • Β«Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅Β» объявлСния ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ присвоСнныС ΠΈΠΌΠ΅Π½Π° объСм модуля.

    Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, всС ΠΈΠΌΠ΅Π½Π°, Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ 9ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ 0019 def ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ являСтся Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ; Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π½ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ…. Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ Python ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ LGB , послС ΠΈΠΌΠ΅Π½ областСй дСйствия:

    • Когда Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠ΅ имя Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Python ΠΈΡ‰Π΅Ρ‚ Ρ‚Ρ€ΠΈ области дСйствия β€” локальная (L), Π·Π°Ρ‚Π΅ΠΌ глобальная (G) ΠΈ Π·Π°Ρ‚Π΅ΠΌ встроСнный (B) β€” ΠΈ останавливаСтся Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ мСстС, Π³Π΄Π΅ встрСчаСтся имя.

    • Когда Π²Ρ‹ Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚Π΅ имя Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ просто ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π½Π΅Π΅ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ), Python всСгда создаСт ΠΈΠ»ΠΈ измСняСт имя Π² локальная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½Π° Π½Π΅ объявлСна β€‹β€‹Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠΉ Π² этом функция.

    • Π’Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Ρ‚. Π΅. Π½Π° Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ модуля ΠΈΠ»ΠΈ Π½Π° интСрактивная подсказка), локальная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ такая ΠΆΠ΅, ΠΊΠ°ΠΊ global β€” пространство ΠΈΠΌΠ΅Π½ модуля.

    Рисунок 4.1 ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ возмоТности Python. Ρ‚Ρ€ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±Ρ‹. Π’ качСствС ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ Π·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ эти ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ простым ΠΈΠΌΠ΅Π½Π°ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, spam ). Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄Π²ΡƒΡ… Π³Π»Π°Π²Π°Ρ… ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π° для ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, object. spam , Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ) ΠΆΠΈΠ²ΡƒΡ‚ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ ΠΈ Ρ‚.Π΄. Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ.

    Рис. 4-1. ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ поиска области LGB

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€

    Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Π°Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ дСмонстрируСт ΠΈΠ΄Π΅ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°. Допустим, ΠΌΡ‹ пишСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ»Π΅ модуля:

     # глобальная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ
    X = 99 # X ΠΈ функция Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅: Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ
              
    def func(Y): # Y ΠΈ Z Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Π² function: locals
        # локальная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ
        Z = X + Y # X Π½Π΅ присваиваСтся, поэтому это глобальная
        Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Z
    func(1) # функция Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅: result=100 

    Π­Ρ‚ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ содСрТащиСся Π² Π½Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ряд ΠΈΠΌΠ΅Π½ для Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ своими Π΄Π΅Π»Π°ΠΌΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€Π°Π²ΠΈΠ»Π° области дСйствия Python, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°:

    Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°: X , func

    X являСтся Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ назначаСтся Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Ρ„Π°ΠΉΠ»Π° модуля; Π½Π° Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΠ»Π°Ρ‚ΡŒΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‡ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΌ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ. функция Π΅ΡΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅; ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ заявлСниС присваиваСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ имя func Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ модуля.

    ΠœΠ΅ΡΡ‚Π½Ρ‹Π΅ названия: Y , Z

    Y ΠΈ Z ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ), ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Π° присвоили Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ; Z Π² силу утвСрТдСния = , ΠΈ Y , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ всСгда ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅ (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этом Ρ‡Π΅Ρ€Π΅Π· ΠΌΠΈΠ½ΡƒΡ‚Ρƒ).

    Π’Π΅ΡΡŒ смысл этой схСмы сСгрСгации ΠΈΠΌΠ΅Π½ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ мСстныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ слуТат Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π±Π΅Π³. НапримСр, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Y ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ слоТСния Z сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ; ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠ΅ΡˆΠ°ΡŽΡ‚ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡƒ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ пространство ΠΈΠΌΠ΅Π½ (ΠΈΠ»ΠΈ Π»ΡŽΠ±ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Ссли Π½Π° Ρ‚ΠΎ пошло). ΠœΠ΅ΡΡ‚Π½Ρ‹ΠΉ/Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ; Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚, ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² самой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° Π½Π΅ Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ мСстС. Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅. [30]

    The global Statement

    The global заявлСниС это СдинствСнноС, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ объявлСния Π² Python. Он сообщаСт Python, Ρ‡Ρ‚ΠΎ функция ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° β€” ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΆΠΈΠ²ΡƒΡ‚ Π² ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости модуля (пространство ΠΈΠΌΠ΅Π½). ΠœΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠΆΠ΅ ΠΌΠΈΠΌΠΎΡ…ΠΎΠ΄ΠΎΠΌ; ΠΊΠ°ΠΊ ΠΈΡ‚ΠΎΠ³:

    • global ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ «имя Π½Π° Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ„Π°ΠΉΠ» модуля».

    • Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΎΠ½ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Π² функция.

    • Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· объявлСния.

    ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ global β€” это просто ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово. Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ , Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько ΠΈΠΌΠ΅Π½, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыС. ВсС пСрСчислСнныС ΠΈΠΌΠ΅Π½Π° Π±ΡƒΠ΄ΡƒΡ‚ сопоставлСны с ΠΏΡ€ΠΈΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΌ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия модуля ΠΏΡ€ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ссылкС Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π΅Π»ΠΎ. НапримСр:

     y, z = 1, 2 # Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅
    ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ all_global():
     global x # объявляСм присвоСнныС Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ значСния
     x = y + z # Π½Π΅Ρ‚ нСобходимости ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ y,z: ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ 9 области 30131

    Π—Π΄Π΅ΡΡŒ x , y ΠΈ z - всС Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ all_global . ΠΈ ΠΈ z ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Π½Π΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Π² функция; x являСтся Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ‚Π°ΠΊ сказали: ΠΌΡ‹ пСрСчислил Π΅Π³ΠΎ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ global , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΎΠ±Π»Π°ΡΡ‚ΡŒ модуля явно. Π‘Π΅Π· Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ здСсь, x Π±ΡƒΠ΄Π΅Ρ‚ считаСтся мСстным Π² силу назначСния. Π—Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΈ z Π½Π΅ Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ; ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ поиска Python LGB Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΡ… Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ автоматичСски. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ x ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ.

    Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

    Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *