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/05-data-types/01-primitives-methods/article.md
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,8 @@
1
1
# Методы с примитивными типами данных
2
2
3
-
JavaScript позволяет нам работать с примитивными типами данных (далее: примитивы) (строки, числа, и т.д) так, как если бы они были объектами.
3
+
JavaScript позволяет нам работать с примитивными типами данных (далее: примитивы) - строки, числа, и т.д., так, как если бы они были объектами.
4
4
5
-
Также, примитивы имеют методы объектов. Их мы изучим позже, но сначала мы разберем как это все работает, потому что, конечно, примитивы - не объекты (и здесь мы разберем это поподробнее).
5
+
Также примитивы имеют методы объектов. Их мы изучим позже, но сначала мы разберем, как это все работает, потому что, конечно, примитивы - не объекты (и здесь мы разберем это поподробнее).
6
6
7
7
Давайте взглянем на ключевые различия между примитивами и объектами.
Существует множество встроенных объектов. Например, те, которые работают с датами, ошибками, HTMLэлементами, и т.д. Они имеют различные свойства и методы.
34
+
Существует множество встроенных объектов. Например, те, которые работают с датами, ошибками, HTML-элементами и т.д. Они имеют различные свойства и методы.
35
35
36
-
Однако, у этих особенностей есть определенная цена!
36
+
Однако у этих возможностей есть обратная сторона!
37
37
38
-
Объекты «тяжелее» примитивов. Они нуждаются в дополнительных ресурсах для поддержания внутренней структуры. Но, так как свойства и методы очень полезны в программировании, движки JavaScript оптимизируют их для уменьшения дополнительной нагрузки.
38
+
Объекты «тяжелее» примитивов. Они нуждаются в дополнительных ресурсах для поддержания внутренней структуры. Но так как свойства и методы очень полезны в программировании, движки JavaScript оптимизируют их для уменьшения дополнительной нагрузки.
39
39
40
40
## Примитив как объект
41
41
42
42
Вот парадокс, с которым столкнулся создатель JavaScript:
43
43
44
-
- Есть много вещей, которые хотелось бы сделать с примитивамикак string или number. Было бы замечательно если бы мы могли вызывать эти «вещи» так же, как методы.
44
+
- Есть много всего, что хотелось бы сделать с примитивами, такими как строка или число. Было бы замечательно, если бы мы могли обращаться с ними так же, как и с методами.
45
45
- Примитивы должны быть как можно легкими и быстрыми.
46
46
47
47
Вот решение, хотя выглядит оно немного неуклюже:
48
48
49
49
1. Примитивы остаются примитивами. Одно значение, как и хотелось.
50
-
2. Язык позволяет иметь доступ к методам и свойствам strings, numbers, booleans и symbols.
50
+
2. Язык позволяет иметь доступ к методам и свойствам строк, чисел, булевых значений и символов.
51
51
3. При этом, создается специальный "объект-обертка", который предоставляет дополнительную функциональность, а после, удаляется.
52
52
53
53
Каждый примитив имеет свой собственный "объект-обертку", которые называются: `String`, `Number`, `Boolean` и `Symbol`. Таким образом,они имеют разный набор методов.
54
54
55
-
К примеру, существует метод [str.toUpperCase()](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase), который возвращает cтроку в верхнем регистре.
55
+
К примеру, существует метод [str.toUpperCase()](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase), который возвращает cтроку в верхнем регистре.
Движок JavaScript очень оптимизирует этот процесс. Он даже может пропустить создание специального объекта. Однако, он все же должен придерживаться спецификаций и работать так, как будто он его создает.
74
74
75
-
Число имеет собственный набор методов. Например, [toFixed(n)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed) округляет число до n знаков после запятой.
75
+
Число имеет собственный набор методов. Например, [toFixed(n)](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed) округляет число до n знаков после запятой.
76
76
77
77
```js run
78
78
let n =1.23456;
@@ -108,7 +108,7 @@ if (zero) {
108
108
109
109
С другой стороны, использование функций `String/Number/Boolean` без оператора `new` является вполне разумной и полезной вещью. Они превращают значение в соответствующий примитивный тип: в строку, в число, в булевой тип.
110
110
111
-
К примеру, следующее вполне легально:
111
+
К примеру, следующее вполне допустимо:
112
112
113
113
```js
114
114
let num =Number("123"); // превращает строку в число
0 commit comments