|
3 | 3 |
|
4 | 4 | Что произойдёт, если сложить два объекта `obj1 + obj2`, вычесть один из другого `obj1 - obj2` или вывести их на экран, воспользовавшись `alert(obj)`? |
5 | 5 |
|
6 | | -В этом случае, объекты сначала автоматически преобразуются в примитивы, а затем выполнится операция. |
| 6 | +В этом случае, объекты сначала автоматически преобразуются в примитивы, а затем выполняется операция. |
7 | 7 |
|
8 | 8 | В главе <info:type-conversions> мы видели правила для численных, строковых и логических преобразований. Но обделили вниманием объекты. Теперь, поскольку мы уже знаем о методах объектов и символах, можно исправить это. |
9 | 9 |
|
10 | 10 | 1. Все объекты в логическом контексте являются `true`. Существуют лишь их численные и строковые преобразования. |
11 | | -2. Численные преобразования происходят, когда мы вычитаем объекты или применяем математические функции. Например, объекты `Date` (мы рассмотрим их в статье <info:date>) могут вычитаться и результатом `date1 - date2` будет временной отрезок между двумя датами. |
| 11 | +2. Численные преобразования происходят, когда мы вычитаем объекты или выполняем математические операции. Например, объекты `Date` (мы рассмотрим их в статье <info:date>) могут вычитаться и результатом `date1 - date2` будет временной отрезок между двумя датами. |
12 | 12 | 3. Что касается строковых преобразований -- они обычно происходят, когда мы выводим объект по типу `alert(obj)` и в подобных случаях. |
13 | 13 |
|
14 | 14 | ## Преобразование к примитивам |
15 | 15 |
|
16 | 16 | Мы можем тонко настраивать строковые и численные преобразования, используя специальные методы объекта. |
17 | 17 |
|
18 | | -Алгоритм преобразования, называется в [спецификации](https://tc39.github.io/ecma262/#sec-toprimitive) `ToPrimitive`. Он вызывается с "хинтом" ("hint"), который определяет тип преобразования. |
| 18 | +Алгоритм преобразований, называется в [спецификации](https://tc39.github.io/ecma262/#sec-toprimitive) `ToPrimitive`. Он вызывается с "хинтом" ("hint"), который определяет тип преобразований. |
19 | 19 |
|
20 | 20 | Существует три варианта: |
21 | 21 |
|
|
31 | 31 | ``` |
32 | 32 |
|
33 | 33 | `"number"` |
34 | | -: Для объектно-численных преобразований, таких как математические операции: |
| 34 | +: Для объектно-численных преобразований, в случае математических операций: |
35 | 35 |
|
36 | 36 | ```js |
37 | 37 | // явное преобразование |
|
0 commit comments