Skip to content

Commit 3493b46

Browse files
committed
array/constructor
1 parent 9e9ec9f commit 3493b46

File tree

2 files changed

+16
-24
lines changed

2 files changed

+16
-24
lines changed

doc/ru/appendix/fromtranslators.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,7 @@
22

33
Авторы этой документации требуют от читателя не совершать каких-либо ошибок и постоянно следить за качеством пишущегося кода. Мы, как переводчики и опытные программисты на JavaScript рекомендуем *прислушиваться* к этим советам, но при этом не делать из этого *крайность*. Опыт — сын ошибок трудных, и иногда в борьбе с ошибками зарождается намного более детальное понимание предмета. Да, нужно избегать ошибок, но допускать их неосознанно — вполне нормально.
44

5-
Относитесь с мудростью к тому, что вы пишете — важно знать как работает именно ваш код и как это соответствует приведённым в статье тезисам — и уже из этого вы сможете делать вывод, подходит ли вам тот или иной подход или нет. *Важно* знать как работает [прототипное наследование](#object.prototype), но это не так необходимо, если вы используете функциональный подход или пользуетесь какой-либо сторонней библиотекой. Важно помнить о том, что у вас недостаёт какого-либо конкретного знания и что пробел следует заполнить, но если вы не используете в работе эту часть, вы всё равно можете писать хороший код, если у вас есть талант.
5+
Относитесь с мудростью к тому, что вы пишете — важно знать как работает именно ваш код и как это соответствует приведённым в статье тезисам — и уже из этого вы сможете делать вывод, подходит ли вам тот или иной подход или нет. *Важно* знать как работает [прототипное наследование](#object.prototype), но это не так необходимо, если вы используете функциональный подход или пользуетесь какой-либо сторонней библиотекой. Важно помнить о том, что у вас недостаёт какого-либо конкретного знания и что пробел следует заполнить, но если вы не используете в работе эту часть, вы всё равно можете писать хороший код — ну, если у вас есть талант.
6+
7+
Гонка за оптимизацией — это драматично и правильно, но лучше написать работающий код, а потом уже его оптимизировать и искать узкие места, при необходимости. Оптимизацию необходимо делать, если вы видите явные неудобства для пользователя в тех или иных браузерах или у вас супер-крупный проект, которым никогда не помешает оптимизация, или вы работаете с какой-либо сверхтребовательной технологией типа WebGL. Данная документация очень поможет вам в определении этих узких мест.
68

doc/ru/array/constructor.md

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,25 @@
1-
## The `Array` Constructor
1+
## Конструктор `Array`
22

3-
Since the `Array` constructor is ambiguous in how it deals with its parameters,
4-
it is highly recommended to always use the array literals - `[]` notation -
5-
when creating new arrays.
3+
Так как в конструкторе `Array` есть некоторая двусмысленность кастательно его параметров, настоятельно рекомендуется всегда использовать синтаксис литеральной нотации — `[]` — при создании массивов.
64

7-
[1, 2, 3]; // Result: [1, 2, 3]
8-
new Array(1, 2, 3); // Result: [1, 2, 3]
5+
[1, 2, 3]; // Результат: [1, 2, 3]
6+
new Array(1, 2, 3); // Результат: [1, 2, 3]
97

10-
[3]; // Result: [3]
11-
new Array(3); // Result: []
12-
new Array('3') // Result: ['3']
8+
[3]; // Результат: [3]
9+
new Array(3); // Результат: []
10+
new Array('3') // Результат: ['3']
1311

14-
In cases when there is only one argument passed to the `Array` constructor,
15-
and that argument is a `Number`, the constructor will return a new *sparse*
16-
array with the `length` property set to the value of the argument. It should be
17-
noted that **only** the `length` property of the new array will be set this way,
18-
the actual indexes of the array will not be initialized.
12+
В случае, когда в конструктор `Array` передается один аргумент и этот аргумент имеет тип `Number`, конструктор возвращает новый, *запоненный случайными значениями*, массив, имеющий длину равную значению переданного аргумента. Стоит заметить, что в этом случае будет установлено только свойство `length` нового массива, фактически индексы массива не будут проинициализированы.
1913

2014
var arr = new Array(3);
21-
arr[1]; // undefined
22-
1 in arr; // false, the index was not set
15+
arr[1]; // не определён, undefined
16+
1 in arr; // false, индекс не был установлен
2317

24-
The behavior of being able to set the length of the array upfront only comes in
25-
handy in a few cases, like repeating a string, in which it avoids the use of a
26-
`for loop` code.
18+
Поведение, которое позволяет изначально установить только размер массива может пригодиться лишь в нескольких случаях, таких как повторение строк, за счёт чего избегается использование цикла `for loop`.
2719

2820
new Array(count + 1).join(stringToRepeat);
2921

30-
### In conclusion
22+
### Заключение
3123

32-
The use of the `Array` constructor should be avoided as much as possible.
33-
Literals are definitely preferred. They are shorter and have a clearer syntax;
34-
therefore, they also increase the readability of the code.
24+
Использование конструктора `Array` нужно избегать, насколько это возможно. Литералы определённо предпочтительнее — это краткая запись и она имеет более понятный синтаксис, так что при этом даже улучшается читабельность кода.
3525

0 commit comments

Comments
 (0)