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: README_ru-RU.md
+9-9
Original file line number
Diff line number
Diff line change
@@ -38,7 +38,7 @@ sayHi();
38
38
39
39
#### Ответ: D
40
40
41
-
Внутри функции мы сперва определям переменную `name` с помощью ключевого слова `var`. Это означает, что переменная будет поднята (область памяти под переменную будет выделена во время фазы создания) со значением `undefined` по умолчанию, до тех пора пока исполнение кода не дойдет до строчки, где определяется переменная. Мы еще не определили значение `name` когда пытаемся вывести её в консоль, поэтому в консоли будет `undefined`.
41
+
Внутри функции мы сперва определяем переменную `name` с помощью ключевого слова `var`. Это означает, что переменная будет поднята (область памяти под переменную будет выделена во время фазы создания) со значением `undefined` по умолчанию, до тех пора пока исполнение кода не дойдет до строчки, где определяется переменная. Мы еще не определили значение `name` когда пытаемся вывести её в консоль, поэтому в консоли будет `undefined`.
42
42
43
43
Переменные, определенные с помощью `let` (и `const`), также поднимаются, но в отличие от `var`, не <i>инициализируются</i>. Доступ к ним не возможен до тех пор, пока не выполнится строка их определения (инициализации). Это называется "временная мертвая зона". Когда мы пытаемся обратиться к переменным до того момента как они определены, JavaScript выбрасывает исключение `ReferenceError`.
44
44
@@ -188,9 +188,10 @@ console.log(d.greeting);
188
188
```
189
189
190
190
- A: `Hello`
191
-
- B: `undefined`
192
-
- C: `ReferenceError`
193
-
- D: `TypeError`
191
+
- B: `Hey!`
192
+
- C: `undefined`
193
+
- D: `ReferenceError`
194
+
- E: `TypeError`
194
195
195
196
<details><summary><b>Ответ</b></summary>
196
197
<p>
@@ -236,7 +237,7 @@ console.log(b === c);
236
237
237
238
Оператор `==` разрешает приведение типов, он проверяет равенство _значений_. Оба значения равны `3`, поэтому возвращается `true`.
238
239
239
-
При использвании оператора `===` значение _и_ тип должны быть одинаковыми. Но в нашем случае это не так: `new Number()` это не число, это **объект**. Оба возвращают `false`.
240
+
При использовании оператора `===` значение _и_ тип должны быть одинаковыми. Но в нашем случае это не так: `new Number()` это не число, это **объект**. Оба возвращают `false`.
240
241
241
242
</p>
242
243
</details>
@@ -327,7 +328,6 @@ bark.animal = "dog";
327
328
В JavaScript это возможно, т.к. функции это объекты! (Всё есть объект кроме примитивов).
328
329
329
330
Функция это специальный тип объекта, который можно вызвать. Функция это объект со свойствами.
330
-
A function is a special type of object. The code you write yourself isn't the actual function. The function is an object with properties. This property is invocable.
331
331
332
332
</p>
333
333
</details>
@@ -430,7 +430,7 @@ console.log(sarah);
430
430
431
431
---
432
432
433
-
###### 14. Все объекты имют прототипы
433
+
###### 14. Все объекты имеют прототипы
434
434
435
435
- A: Да
436
436
- B: Нет
@@ -1005,7 +1005,7 @@ sayHi.bind(person, 21);
1005
1005
1006
1006
#### Ответ: D
1007
1007
1008
-
В обоих случаях мы мы передаем объект, на который будет указывать `this`. Но `.call`_выполняется сразу же_!
1008
+
В обоих случаях мы передаем объект, на который будет указывать `this`. Но `.call`_выполняется сразу же_!
1009
1009
1010
1010
`.bind` возвращает _копию_ функции, но с привязанным контекстом. Она не выполняется незамедлительно.
1011
1011
@@ -1186,7 +1186,7 @@ console.log(numbers);
1186
1186
1187
1187
Типы примитивов: `boolean`, `null`, `undefined`, `bigint`, `number`, `string`, и `symbol`.
1188
1188
1189
-
Отличием примитива от объекта является то, что примитивы не имеют свойств или методов. Тем не менее, `'foo'.toUpperCase()` преобразуется в `'FOO'` и не вызывает `TypeError`. Это происходит потому, что при попытке получения свойства или метода у примитива (например, строки), JavaScript неявно обернет примитив объектом, используя один из классов-оберток (например, `String`), а затем сразу же уничтожет обертку после вычисления выражения. Все примитивы кроме `null` и `undefined` ведут себя таким образом.
1189
+
Отличием примитива от объекта является то, что примитивы не имеют свойств или методов. Тем не менее, `'foo'.toUpperCase()` преобразуется в `'FOO'` и не вызывает `TypeError`. Это происходит потому, что при попытке получения свойства или метода у примитива (например, строки), JavaScript неявно обернет примитив объектом, используя один из классов-оберток (например, `String`), а затем сразу же уничтожит обертку после вычисления выражения. Все примитивы кроме `null` и `undefined` ведут себя таким образом.
0 commit comments