Skip to content

Commit c4d6ae9

Browse files
committed
types.typeof
1 parent 58b12b2 commit c4d6ae9

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

doc/ru/types/typeof.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
## Оператор `typeof`
22

3-
Оператор `typeof` (вместе с [`instanceof`](#types.instanceof)) — это, вероятно, самая большая недоделка в JavaScript, поскольку, похоже, он **поломан более чем полностью**.
3+
Оператор `typeof` (вместе с [`instanceof`](#types.instanceof)) — это, вероятно, самая большая недоделка в JavaScript, поскольку выходит, что он **поломан почти полностью**.
44

5-
Хотя `instanceof` еще имеет ограниченное применение, `typeof` на самом деле имеет *только один* практический случай применения, который при всём при этом **не** является проверкой типа объекта.
5+
Хотя `instanceof` используется достаточно редко, `typeof` вообще имеет один практический случай применения, который при всём при этом неожиданно **не** оказывается проверкой типа объекта.
66

77
> **Замечаение:** Хотя для вызова `typeof` также можно использовать синтаксис функции, т.е. `typeof(obj)`, на самом деле это не функция. Двойные круглые скобки будут работать нормально и возвращаемое значение будет использоваться как операнд оператора `typeof`. Но функции `typeof`**не существует**.
88
@@ -26,13 +26,13 @@
2626
{} Object object
2727
new Object() Object object
2828

29-
В таблице выше *Тип* представляет собой значение, возвращаемое оператором `typeof`. Как хорошо видно, это значение может быть абсолютно любым, но не логичным результатом.
29+
В таблице выше, в колонке *Тип* приводится значение, возвращаемое оператором `typeof` для указанного объекта. Как хорошо заметно, это значение может быть чем угодно, но не ожидаемым результатом.
3030

31-
*Класс* представляет собой значение внутреннего свойства `[[Class]]` объекта.
31+
В колонке *Класс* приведено значение внутреннего свойства объекта `[[Class]]`.
3232

3333
> **Из спецификации:** Значением `[[Class]]` может быть одна из следующих строк: `Arguments`, `Array`, `Boolean`, `Date`, `Error`, `Function`, `JSON`, `Math`, `Number`, `Object`, `RegExp`, `String`.
3434
35-
Для того, чтобы получить значение `[[Class]]` необходимо вызвать метод `toString` у `Object.prototype`.
35+
Чтобы получить значение `[[Class]]` нужно применить к объекту метод `toString` из `Object.prototype`.
3636

3737
### Класс объекта
3838

@@ -46,19 +46,19 @@
4646
is('String', 'test'); // true
4747
is('String', new String('test')); // true
4848

49-
В примере выше `Object.prototype.toString` вызывается со значением [this](#function.this), являющимся объектом, значение `[[Class]]` которого нужно получить.
49+
В примере выше `Object.prototype.toString` вызывается со значением [this](#function.this), ссылающимся на объект, значение `[[Class]]` которого нужно получить.
5050

51-
> **ES5 Замечание:** Для удобства в ECMAScript 5 возвращаемое значение `Object.prototype.toString `для `null` и `undefined` было изменено с `Object` на `Null` и `Undefined` соответственно.
51+
> **ES5 Замечание:** Для удобства, в ECMAScript 5 возвращаемое значение `Object.prototype.toString` для `null` и `undefined` было изменено с `Object` на `Null` и `Undefined` соответственно.
5252
5353
### Проверка переменных на определённость
5454

5555
typeof foo !== 'undefined'
5656

57-
Выше проверяется, было ли `foo` действительно объявлено или нет; просто обращение к переменной приведёт к `ReferenceError`. Это единственное, чем на самом деле полезен `typeof`.
57+
Выше проверяется, было ли `foo` действительно объявлено или нет; обычное обращение к несуществующей переменной приведёт к `ReferenceError`. И это единственное, чем на самом деле полезен `typeof`.
5858

5959
### Заключение
6060

61-
Для проверки типа объекта настоятельно рекомендуется использовать` Object.prototype.toString` — это единственный надежный способ. Как показано выше в таблице типов, некоторые возвращаемые `typeof` значения не определены в спецификации: таким образом, они могут отличаться в различных реализациях.
61+
Для проверки типа объекта настоятельно рекомендуется использовать `Object.prototype.toString` — это единственный надежный способ для этих действий. Как показано выше в таблице типов, некоторые значения, возвращаемые `typeof`, не описаны в спецификации: таким образом, они могут отличаться в различных реализациях.
6262

63-
Кроме случая проверки, была ли определена переменная, `typeof` следует избегать **во что бы то ни стало**.
63+
Кроме случая проверки, была ли определена переменная, `typeof` следует избегать.
6464

0 commit comments

Comments
 (0)