You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/14-function-basics/article.md
+34-34Lines changed: 34 additions & 34 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,7 @@
16
16
17
17
```js
18
18
functionshowMessage() {
19
-
alert( 'Hello everyone!' );
19
+
alert( 'Всем привет!' );
20
20
}
21
21
```
22
22
@@ -30,7 +30,7 @@ function showMessage() {
30
30
31
31
```js run
32
32
functionshowMessage() {
33
-
alert( 'Hello everyone!' );
33
+
alert( 'Всем привет!' );
34
34
}
35
35
36
36
*!*
@@ -54,13 +54,13 @@ showMessage();
54
54
```js run
55
55
functionshowMessage() {
56
56
*!*
57
-
let message ="Hello, I'm JavaScript!"; // локальная переменная
57
+
let message ="Привет, я JavaScript!"; // локальная переменная
58
58
*/!*
59
59
60
60
alert( message );
61
61
}
62
62
63
-
showMessage(); //Hello, I'm JavaScript!
63
+
showMessage(); //Привет, я JavaScript!
64
64
65
65
alert( message ); // <-- будет ошибка, т.к. переменная видна только внутри функции
66
66
```
@@ -70,57 +70,57 @@ alert( message ); // <-- будет ошибка, т.к. переменная в
70
70
У функции есть доступ к внешним переменным, например:
71
71
72
72
```js run no-beautify
73
-
let*!*userName*/!*='John';
73
+
let*!*userName*/!*='Вася';
74
74
75
75
functionshowMessage() {
76
-
let message ='Hello, '+*!*userName*/!*;
76
+
let message ='Привет, '+*!*userName*/!*;
77
77
alert(message);
78
78
}
79
79
80
-
showMessage(); //Hello, John
80
+
showMessage(); //Привет, Вася
81
81
```
82
82
83
83
Функция обладает полным доступом к внешним переменным и может изменять их значение.
84
84
85
85
Например:
86
86
87
87
```js run
88
-
let*!*userName*/!*='John';
88
+
let*!*userName*/!*='Вася';
89
89
90
90
functionshowMessage() {
91
-
*!*userName*/!* = "Bob"; // (1) изменяем значение внешней переменной
91
+
*!*userName*/!* = "Петя"; // (1) изменяем значение внешней переменной
92
92
93
-
let message ='Hello, '+*!*userName*/!*;
93
+
let message ='Привет, '+*!*userName*/!*;
94
94
alert(message);
95
95
}
96
96
97
-
alert( userName ); // *!*John*/!* перед вызовом функции
97
+
alert( userName ); // *!*Вася*/!* перед вызовом функции
98
98
99
99
showMessage();
100
100
101
-
alert( userName ); // *!*Bob*/!*, значение внешней переменной было изменено функцией
101
+
alert( userName ); // *!*Петя*/!*, значение внешней переменной было изменено функцией
102
102
```
103
103
104
104
Внешние переменные используются только если в теле функции нет локальных. Это случается, если мы забываем объявить их с помощью ключевого слова `let`.
105
105
106
106
Если одноимённая переменная объявляется внутри функции, тогда она перекрывает внешнюю. Например, в коде ниже функция использует локальную переменную `userName`. Внешняя будет проигнорирована:
107
107
108
108
```js run
109
-
let userName ='John';
109
+
let userName ='Вася';
110
110
111
111
functionshowMessage() {
112
112
*!*
113
-
let userName ="Bob"; // объявляем локальную переменную
113
+
let userName ="Петя"; // объявляем локальную переменную
114
114
*/!*
115
115
116
-
let message ='Hello, '+ userName; // *!*Bob*/!*
116
+
let message ='Привет, '+ userName; // *!*Петя*/!*
117
117
alert(message);
118
118
}
119
119
120
120
// функция создаст и будет использовать свою собственную локальную переменную userName
121
121
showMessage();
122
122
123
-
alert( userName ); // *!*John*/!*, не изменилась, у функции нет доступа в внешней переменной
123
+
alert( userName ); // *!*Вася*/!*, не изменилась, у функции нет доступа в внешней переменной
124
124
```
125
125
126
126
```smart header="Глобальные переменные"
@@ -143,8 +143,8 @@ function showMessage(*!*from, text*/!*) { // аргументы: from, text
showMessage('Аня', "Как дела?"); //Аня: Как дела? (**)
148
148
*/!*
149
149
```
150
150
@@ -163,12 +163,12 @@ function showMessage(from, text) {
163
163
alert( from +': '+ text );
164
164
}
165
165
166
-
letfrom="Ann";
166
+
letfrom="Аня";
167
167
168
-
showMessage(from, "Hello"); // *Ann*: Hello
168
+
showMessage(from, "Привет"); // *Аня*: Привет
169
169
170
170
// значение "from" осталось прежним, функция изменила значение локальной переменной
171
-
alert( from ); //Ann
171
+
alert( from ); //Аня
172
172
```
173
173
174
174
## Параметры по умолчанию
@@ -178,24 +178,24 @@ alert( from ); // Ann
178
178
Например, вышеупомянутая функция `showMessage(from, text)` может быть вызвана с одним аргументом:
179
179
180
180
```js
181
-
showMessage("Ann");
181
+
showMessage("Аня");
182
182
```
183
183
184
-
Это не приведёт к ошибке. Такой вызов выведет `"Ann: undefined"`. В вызове не указан параметр `text`, поэтому предполагается, что `text===undefined`.
184
+
Это не приведёт к ошибке. Такой вызов выведет `"Аня: undefined"`. В вызове не указан параметр `text`, поэтому предполагается, что `text===undefined`.
185
185
186
186
Если мы хотим задать параметру `text` значение по умолчанию, мы должны указать его после `=`:
187
187
188
188
```jsrun
189
-
functionshowMessage(from, *!*text="no text given"*/!*) {
189
+
functionshowMessage(from, *!*text="текст не добавлен"*/!*) {
190
190
alert( from +": "+ text );
191
191
}
192
192
193
-
showMessage("Ann"); //Ann: no text given
193
+
showMessage("Аня"); //Аня: текст не добавлен
194
194
```
195
195
196
-
Теперь, если параметр `text` не указан, его значением будет `"no text given"`
196
+
Теперь, если параметр `text` не указан, его значением будет `"текст не добавлен"`
197
197
198
-
В данном случае `"no text given"` это строка, но на её месте могло бы быть и более сложное выражение, которое бы вычислялось и присваивалось при отсутствии параметра. Например:
198
+
В данном случае `"текст не добавлен"` это строка, но на её месте могло бы быть и более сложное выражение, которое бы вычислялось и присваивалось при отсутствии параметра. Например:
0 commit comments