Skip to content

Commit 9132032

Browse files
committed
translate 1-js/02-first-steps/16-javascript-specials/
1 parent 6de4258 commit 9132032

1 file changed

Lines changed: 31 additions & 31 deletions

File tree

  • 1-js/02-first-steps/16-javascript-specials

1-js/02-first-steps/16-javascript-specials/article.md

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Особенности JavaScript
22

3-
Давайте кратко пройдёмся по изученному материалу и отметим наиболее "хитрые" моменты.
3+
Давайте кратко повторим изученный материал и отметим наиболее "тонкие" моменты.
44

55
## Структура кода
66

@@ -25,17 +25,17 @@ alert("После этого сообщения ждите ошибку")
2525
[1, 2].forEach(alert)
2626
```
2727

28-
Большинство руководств по написанию кода рекомендуют всё-таки завершать инструкции точкой с запятой.
28+
Большинство руководств по стилю кода рекомендуют всё-таки ставить точку с запятой после каждой инструкции.
2929

3030
Явный разделитель не требуется после закрывающей фигурной скобки в блоках `{...}` и синтаксических конструкций с их применением, например, циклов:
3131

3232
```js
3333
function f() {
34-
// после объявления функции точку с запятой ставить необязательно
34+
// после объявления функции необязательно ставить точку с запятой
3535
}
3636

3737
for(;;) {
38-
// после данного цикла также необязательна точка с запятой
38+
// после данного цикла точка с запятой также необязательна
3939
}
4040
```
4141

@@ -53,11 +53,11 @@ for(;;) {
5353
...
5454
```
5555

56-
Директиву следует размещать вверху скрипта или в начале тела функции.
56+
Эту директиву следует размещать вверху скрипта или в начале тела функции.
5757

5858
Впрочем, `"use strict"` можно и пренебречь, но в таком случае код будет работать в режиме "совместимости" со старыми версиями языка JavaScript, тогда как мы стремимся использовать его самые современные возможности.
5959

60-
В некоторых характеристиках языка (например, в ещё не известных нам классах), строгий режим используется по умолчанию.
60+
В некоторых особенностях языка (например, в ещё неизвестных нам классах) строгий режим используется по умолчанию.
6161

6262
Подробности: <info:strict-mode>.
6363

@@ -87,12 +87,12 @@ x = "Алиса";
8787
- `string` – строки,
8888
- `boolean` – логические значения истинности или ложности: `true/false`,
8989
- `null` – тип с единственным значением `null`, т.е. "пустое значение" или "значение не существует",
90-
- `undefined` – тип с единственным значением `undefined`, т.е. "значение не присвоено",
90+
- `undefined` – тип с единственным значением `undefined`, т.е. "значение не задано",
9191
- `object` и `symbol` – сложные структуры данных и уникальные идентификаторы; их мы изучим позже.
9292

9393
Оператор `typeof` возвращает тип значения переменной, но и здесь не без особенностей:
9494
```js
95-
typeof null == "object" // это баг самого JavaScript
95+
typeof null == "object" // это хроническая ошибка самого JavaScript
9696
typeof function(){} == "function" // функции в языке на особом счету
9797
```
9898

@@ -102,13 +102,13 @@ typeof function(){} == "function" // функции в языке на особ
102102

103103
Наша рабочая среда – это браузер, поэтому на клиенте применяются следующие функции:
104104

105-
[`prompt(вопрос, [default])`](mdn:api/Window/prompt)
105+
[`prompt(вопрос, [default])`](https://developer.mozilla.org/ru/docs/Web/API/Window/prompt)
106106
: Задаём посетителю `вопрос` и ждём от него ответ. На выходе получаем либо строку с ответом, либо `null`, если посетитель нажал на кнопку "Отмена".
107107

108-
[`confirm(question)`](mdn:api/Window/confirm)
109-
: Задаём посетителю `вопрос`, на который он сможет ответить с помощью кнопок "ОК" или "Отмена", что вернёт нам `true` или `false`, соответственно.
108+
[`confirm(вопрос)`](https://developer.mozilla.org/ru/docs/Web/API/Window/confirm)
109+
: Задаём посетителю `вопрос`, на который он может ответить с помощью кнопок "ОК" или "Отмена", что вернёт нам `true` или `false`, соответственно.
110110

111-
[`alert(сообщение)`](mdn:api/Window/alert)
111+
[`alert(сообщение)`](https://developer.mozilla.org/ru/docs/Web/API/Window/alert)
112112
: Выводим `сообщение`.
113113

114114
Данные функции *модальны*, то есть пока посетитель не даст свой ответ, исполнение кода будет приостановлено и всякое взаимодействие со страницей будет невозможно.
@@ -130,45 +130,45 @@ alert( "Чаепитие состоялось: " + isTeaWanted ); // true, т.е
130130
В JavaScript предусмотрены следующие операторы:
131131

132132
Арифметические
133-
: привычные всем `* + - /`, а также деление по модулю `%` и возведение в степень `**`.
133+
: Привычные всем `* + - /`, а также деление по модулю `%` и возведение в степень `**`.
134134

135-
Бинарный `+` объединяет строки. А если одним из операндов окажется строка, то второй также будет приведён к строковому типу:
135+
Бинарный плюс `+` объединяет строки. А если одним из операндов окажется строка, то и второй будет приведён к строковому типу:
136136

137137
```js run
138138
alert( '1' + 2 ); // '12', строка
139139
alert( 1 + '2' ); // '12', строка
140140
```
141141

142142
Операторы присваивания
143-
: простые `a = b` и составные `a *= 2`.
143+
: Простые `a = b` и составные `a *= 2`.
144144

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).
147147

148148
Тернарный оператор
149-
: единственный оператор с тремя параметрами: `условие ? результат1 : результат2`. Если `условие` истинно, то возвращается `результат1`, иначе – `результат2`.
149+
: Единственный оператор с тремя параметрами: `условие ? результат1 : результат2`. Если `условие` истинно, то возвращается `результат1`, иначе – `результат2`.
150150

151151
Логические операторы
152-
: логические И `&&`, ИЛИ `||` выполняют так называемые "ленивые вычисления" и по их завершении возвращают `true` или `false`. Логическое НЕТ `!` приводит операнд к логическому типу и возвращает его инвертированное значение.
152+
: Логические И `&&`, ИЛИ `||` выполняют так называемые "ленивые вычисления" и по их завершении возвращают `true` или `false`. Логическое НЕТ `!` приводит операнд к логическому типу и возвращает противоположное ему значение.
153153

154154
Сравнение
155-
: при сравнении двух разнотиповых значений оператор `==` приводит их к числовому типу данных (за исключением `null` и `undefined`, которые могут равняться только самим себе), так что следующие примеры идентичны:
155+
: При сравнении двух разнотиповых значений оператор `==` приводит их к числовому типу данных (за исключением `null` и `undefined`, которые могут равняться только самим себе), так что следующие примеры идентичны:
156156

157157
```js run
158158
alert( 0 == false ); // true
159159
alert( 0 == '' ); // true
160160
```
161161

162-
Другие операторы сравнения также конвертируют значения в число.
162+
Другие операторы сравнения тоже конвертируют значения в числовой тип.
163163

164-
Оператор строгого равенства `===` конвертирования не выполняет, и для него разные типы всегда означают разные значения, так что:
164+
Оператор строгого равенства `===` конвертирования не выполняет и воспринимает значения разных типов как неравные друг другу.
165165

166166
Значения `null` и `undefined` особенны: они равны `==` только самим себе и не равняются ничему иному.
167167

168-
Операторы сравнения `>`(больше)/`<`(меньше) посимвольно сравнивают строки, а остальные типы приводят к строке.
168+
Операторы сравнения `>`(больше)/`<`(меньше) посимвольно сравнивают строки, а остальные типы приводят к числовому типу.
169169

170170
Другие операторы
171-
: существуют и другие операторы, такие как запятая.
171+
: Существуют и другие операторы, такие как запятая.
172172

173173
Подробности: <info:operators>, <info:comparison>, <info:logical-operators>.
174174

@@ -211,14 +211,14 @@ let age = prompt('Сколько тебе лет?', 18);
211211
212212
switch (age) {
213213
case 18:
214-
alert("Некорректный ввод"); // prompt возвращает строку, а не число, поэтому "18" !== 18
214+
alert("Этот код не выполнится"); // prompt возвращает строку, а не число, поэтому "18" !== 18
215215
216216
case "18":
217-
alert("Всё верно!");
217+
alert("А вот правильный синтаксис!");
218218
break;
219219
220220
default:
221-
alert("Введено значение, отличающееся от предусмотренных вариантов");
221+
alert("Введено значение, отличающееся от предусмотренного выше");
222222
}
223223
```
224224

@@ -228,7 +228,7 @@ switch (age) {
228228

229229
Мы рассмотрели три способа создания функции в JavaScript:
230230

231-
1. Объявление: функция задаётся в основном потоке кода
231+
1. Объявление: функция в основном потоке кода
232232

233233
```js
234234
function sum(a, b) {
@@ -238,7 +238,7 @@ switch (age) {
238238
}
239239
```
240240

241-
2. Функциональное выражение: функция задаётся в контексте выражения
241+
2. Функциональное выражение: функция как часть выражения
242242

243243
```js
244244
let sum = function(a, b) {
@@ -256,7 +256,7 @@ switch (age) {
256256
// выражение в правой части
257257
let sum = (a, b) => a + b;
258258
259-
// многострочный код в фигурных скобках { ... } и инструкцией return:
259+
// многострочный код в фигурных скобках { ... } и с оператором return:
260260
let sum = (a, b) => {
261261
// ...
262262
return a + b;
@@ -272,7 +272,7 @@ switch (age) {
272272

273273
- Переменная, объявленная внутри функции, называется локальной переменной. Она видима только внутри функции.
274274
- У параметров могут быть значения по умолчанию: `function sum(a = 1, b = 2) {...}`.
275-
- Функции всегда возвращают определённое значение. При отсутствии инструкции `return` результатом выполнения будет `undefined`.
275+
- Функции всегда возвращают определённое значение. При отсутствии оператора `return` результатом выполнения будет `undefined`.
276276

277277

278278
| Объявленная функция | Функциональное выражение |

0 commit comments

Comments
 (0)