-
Notifications
You must be signed in to change notification settings - Fork 34
Expand file tree
/
Copy pathjavascript.html
More file actions
90 lines (86 loc) · 4.2 KB
/
Copy pathjavascript.html
File metadata and controls
90 lines (86 loc) · 4.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<!DOCTYPE html>
<html dir="ltr" lang="en-US">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Область видимости в JavaScript</title>
<link rel="profile" href="https://gmpg.org/xfn/11"/>
<link rel="shortcut icon" href="https://anton.shevchuk.name/favicon.ico"/>
<link rel="stylesheet" href="css/styles.css"/>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
var a = 1234
let b = 4321
function myConsole () {
console.log(this.a)
console.log(this.b)
}
myConsole();
(function () {
let c = 1111;
(function () {
console.log((a + b) / c) // => 5
})()
})()
let myFunc = function () {
let b = 5432
let c = 1111
return function () {
return ((a + b) / c)
}
}
var anotherFunc = myFunc()
console.log(anotherFunc()) // => 6
</script>
</head>
<body>
<header>
<h1>Основы JavaScript. Область видимости</h1>
<h2>Пример для иллюстрации области видимости в JavaScript</h2>
<p>Результат выполнения кода смотрите в консоли браузера</p>
</header>
<main>
<article>
<h3>Переменная <code>var</code></h3>
<p>
Область видимости: <code>var</code> имеет функциональную область видимости, что означает, что переменная,
объявленная с помощью <code>var</code> в функции, доступна везде в этой функции.
</p>
<p>
Поднятие (Hoisting): переменные, объявленные с помощью <code>var</code>, "поднимаются" вверх своей области
видимости, но инициализируются значением <code>undefined</code> до того, как достигается их фактическое
место объявления в коде. Это значит, что их можно использовать до их объявления в коде без ошибок.
</p>
<p>
Переобъявление: переменную, объявленную с помощью var, можно повторно объявить в той же области видимости
без ошибок.
</p>
</article>
<article>
<h3>Переменная <code>let</code></h3>
<p>
Область видимости: <code>let</code> имеет блочную область видимости, что означает, что переменная доступна
только внутри блока (например, цикла или условного оператора), в котором она была объявлена.
</p>
<p>
Поднятие (Hoisting): переменные, объявленные с помощью <code>let</code>, также поднимаются, но доступ к ним
до их объявления в коде приведет к ошибке <code>ReferenceError</code>. Это поведение иногда называют
"временной мертвой зоной" (Temporal Dead Zone, TDZ).
</p>
<p>
Переобъявление: переменную, объявленную с помощью <code>let</code>, нельзя повторно объявить в той же
области видимости. Попытка это сделать приведет к синтаксической ошибке.
</p>
</article>
</main>
<aside>
<nav>
<a href="index.html" title="back to Index" rel="index">Index</a>
<a href="#" title="reload" onclick="window.location.reload();return false">Reload</a>
</nav>
</aside>
<footer>
© <a href="https://anton.shevchuk.name/jquery-book/">jQuery for beginners</a>
</footer>
</body>
</html>