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/16-javascript-specials/article.md
+31-31Lines changed: 31 additions & 31 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Особенности JavaScript
2
2
3
-
Давайте кратко пройдёмся по изученному материалу и отметим наиболее "хитрые" моменты.
3
+
Давайте кратко повторим изученный материал и отметим наиболее "тонкие" моменты.
4
4
5
5
## Структура кода
6
6
@@ -25,17 +25,17 @@ alert("После этого сообщения ждите ошибку")
25
25
[1, 2].forEach(alert)
26
26
```
27
27
28
-
Большинство руководств по написанию кода рекомендуют всё-таки завершать инструкции точкой с запятой.
28
+
Большинство руководств по стилю кода рекомендуют всё-таки ставить точку с запятой после каждой инструкции.
29
29
30
30
Явный разделитель не требуется после закрывающей фигурной скобки в блоках `{...}` и синтаксических конструкций с их применением, например, циклов:
31
31
32
32
```js
33
33
functionf() {
34
-
// после объявления функции точку с запятой ставить необязательно
34
+
// после объявления функции необязательно ставить точку с запятой
35
35
}
36
36
37
37
for(;;) {
38
-
// после данного цикла также необязательна точка с запятой
38
+
// после данного цикла точка с запятой также необязательна
39
39
}
40
40
```
41
41
@@ -53,11 +53,11 @@ for(;;) {
53
53
...
54
54
```
55
55
56
-
Директиву следует размещать вверху скрипта или в начале тела функции.
56
+
Эту директиву следует размещать вверху скрипта или в начале тела функции.
57
57
58
58
Впрочем, `"use strict"` можно и пренебречь, но в таком случае код будет работать в режиме "совместимости" со старыми версиями языка JavaScript, тогда как мы стремимся использовать его самые современные возможности.
59
59
60
-
В некоторых характеристиках языка (например, в ещё не известных нам классах), строгий режим используется по умолчанию.
60
+
В некоторых особенностях языка (например, в ещё неизвестных нам классах) строгий режим используется по умолчанию.
61
61
62
62
Подробности: <info:strict-mode>.
63
63
@@ -87,12 +87,12 @@ x = "Алиса";
87
87
-`string` – строки,
88
88
-`boolean` – логические значения истинности или ложности: `true/false`,
89
89
-`null` – тип с единственным значением `null`, т.е. "пустое значение" или "значение не существует",
90
-
-`undefined` – тип с единственным значением `undefined`, т.е. "значение не присвоено",
90
+
-`undefined` – тип с единственным значением `undefined`, т.е. "значение не задано",
91
91
-`object` и `symbol` – сложные структуры данных и уникальные идентификаторы; их мы изучим позже.
92
92
93
93
Оператор `typeof` возвращает тип значения переменной, но и здесь не без особенностей:
94
94
```js
95
-
typeofnull=="object"// это баг самого JavaScript
95
+
typeofnull=="object"// это хроническая ошибка самого JavaScript
96
96
typeoffunction(){} =="function"// функции в языке на особом счету
97
97
```
98
98
@@ -102,13 +102,13 @@ typeof function(){} == "function" // функции в языке на особ
102
102
103
103
Наша рабочая среда – это браузер, поэтому на клиенте применяются следующие функции:
Данные функции *модальны*, то есть пока посетитель не даст свой ответ, исполнение кода будет приостановлено и всякое взаимодействие со страницей будет невозможно.
: привычные всем `* + - /`, а также деление по модулю `%` и возведение в степень `**`.
133
+
: Привычные всем `* + - /`, а также деление по модулю `%` и возведение в степень `**`.
134
134
135
-
Бинарный `+` объединяет строки. А если одним из операндов окажется строка, то второй также будет приведён к строковому типу:
135
+
Бинарный плюс `+` объединяет строки. А если одним из операндов окажется строка, то и второй будет приведён к строковому типу:
136
136
137
137
```js run
138
138
alert( '1' + 2 ); // '12', строка
139
139
alert( 1 + '2' ); // '12', строка
140
140
```
141
141
142
142
Операторы присваивания
143
-
: простые`a = b` и составные `a *= 2`.
143
+
: Простые`a = b` и составные `a *= 2`.
144
144
145
-
Поразрядные операторы
146
-
: применяются с целыми числами на битовом уровне. Подробнее об их использовании можно прочитать в [docs](mdn:/JavaScript/Reference/Operators/Bitwise_Operators).
145
+
Битовые операции
146
+
: Применяются с целыми числами на битовом уровне. Подробнее об их использовании можно прочитать на ресурсе [MDN web docs](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators).
147
147
148
148
Тернарный оператор
149
-
: единственный оператор с тремя параметрами: `условие ? результат1 : результат2`. Если `условие` истинно, то возвращается `результат1`, иначе – `результат2`.
149
+
: Единственный оператор с тремя параметрами: `условие ? результат1 : результат2`. Если `условие` истинно, то возвращается `результат1`, иначе – `результат2`.
150
150
151
151
Логические операторы
152
-
: логические И `&&`, ИЛИ `||` выполняют так называемые "ленивые вычисления" и по их завершении возвращают `true` или `false`. Логическое НЕТ `!` приводит операнд к логическому типу и возвращает его инвертированное значение.
152
+
: Логические И `&&`, ИЛИ `||` выполняют так называемые "ленивые вычисления" и по их завершении возвращают `true` или `false`. Логическое НЕТ `!` приводит операнд к логическому типу и возвращает противоположное ему значение.
153
153
154
154
Сравнение
155
-
: при сравнении двух разнотиповых значений оператор `==` приводит их к числовому типу данных (за исключением `null` и `undefined`, которые могут равняться только самим себе), так что следующие примеры идентичны:
155
+
: При сравнении двух разнотиповых значений оператор `==` приводит их к числовому типу данных (за исключением `null` и `undefined`, которые могут равняться только самим себе), так что следующие примеры идентичны:
156
156
157
157
```js run
158
158
alert( 0 == false ); // true
159
159
alert( 0 == '' ); // true
160
160
```
161
161
162
-
Другие операторы сравнения также конвертируют значения в число.
162
+
Другие операторы сравнения тоже конвертируют значения в числовой тип.
163
163
164
-
Оператор строгого равенства `===` конвертирования не выполняет, и для него разные типы всегда означают разные значения, так что:
164
+
Оператор строгого равенства `===` конвертирования не выполняет и воспринимает значения разных типов как неравные друг другу.
165
165
166
166
Значения `null` и `undefined` особенны: они равны `==` только самим себе и не равняются ничему иному.
167
167
168
-
Операторы сравнения `>`(больше)/`<`(меньше) посимвольно сравнивают строки, а остальные типы приводят к строке.
168
+
Операторы сравнения `>`(больше)/`<`(меньше) посимвольно сравнивают строки, а остальные типы приводят к числовому типу.
169
169
170
170
Другие операторы
171
-
: существуют и другие операторы, такие как запятая.
171
+
: Существуют и другие операторы, такие как запятая.
0 commit comments