new Array(5).toString();
",,,,"
это как a,b,c,d,e если вы видите здесь 5 элементов, но только 4 запятые
@NinaScholz эй, но всего пять массивов, так что должно быть пять запятых, верно?
Ваш код эквивалентен выполнению [,,,,].toString().
@zizi Обратитесь к моему ответу ниже. Подумайте, как вы объявляете массив элементов; у вас есть только запятые между два элемента без дополнительной запятой после последнего элемента.
с 5 элементами у вас есть 4 разделителя.
@Karl-AndréGagnon, кстати, конечные запятые игнорируются, начиная с ES5, поэтому потребуется 5 запятых, но это, вероятно, еще больше запутает ОП.
@ Карл-АндреГаньон — не совсем так, [,,,,].length — это 4. ;-)
@slai — статья немного вводит в заблуждение. «Конечные запятые» всегда допускались, но в раннем IE была ошибка, которая рассматривала их как синтаксические ошибки. Кроме того, IE также неправильно обрабатывал исключения, поэтому [,,] создал массив длиной 3 вместо 2. ECMA-262 был более или менее изменен, чтобы приспособиться к ошибочному поведению IE. Таким образом, [0,1,] всегда должен был создавать массив длины 2 не потому, что конечные запятые игнорируются, а потому, что последнее исключение не увеличивает длину. Но теперь это явно указано в EMCA-262. И [1,2,,] создает массив длины 3 (как всегда и должно быть). :-)
@Slai - о, при чтении ECMAScript ed 3 и сравнении с последней редакцией спецификация фактически не изменилась каким-либо значимым образом, были просто добавлены несколько слов, поясняющих, что замыкающие исключения игнорируются (как они всегда должны были быть) , подтверждая, что игнорируется опущение (несуществующее значение после запятой), а не сама запятая. :-)
когда я искал, я не мог найти. Я попробовал и выложил. Не подскажете, как убрать отрицательные отметки :(



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Представьте, как это будет выглядеть со значениями в каждом из индексов массива.
[1,2,3,4,5].join(); // Returns 1,2,3,4,5
Теперь, если вы уберете числа, вы просто останетесь с запятыми посередине.
new Array(5).join(); // Returns ,,,, because the values are blank.
когда я искал, я не мог найти. Я попробовал и выложил. Не подскажете, как убрать отрицательные отметки :(
toString() метод итерации выбрасывает все элементы в Array вталкивает их в строку и вставляет , между ними.
Поскольку вы определили пустой массив с 5 элементами, когда вы применяете toString, он преобразует его в пять «пустых» строк с 4 «,» между ними
Он точно не повторяет элементы, поскольку (в случае OP) их нет, он повторяет от 0 до длина. ;-)
когда я искал, я не мог найти. Я попробовал и выложил. Не подскажете, как убрать отрицательные отметки :(
Как видите, someArray.toString() вернет то, что находится внутри массива, но без [ и ].
console.info([1,2,3,4,5])
console.info([1,2,3,4,5].toString())Итак, если у вас есть запись в элементе массива, он вернет пустую строку и напечатает только запятую. (Array(5) то же, что и [,,,,,])
console.info([,,,,])
console.info([,,,,].toString())Array(5) вернет массив только со свойством length: 5. Что сделает его элементы undefined.
Если вы хотите сделать что-то другое, то undefined вы можете использовать .fill
console.info(Array(5))
console.info(Array(5).fill(""))
console.info(Array(5).fill("anything"))эй, но почему ваш второй фрагмент кода возвращает undefined :(
@zizi Потому что, хотя console.info(...) выводит то, что в скобках, на консоль, сама функция console.info не возвращает значение. Первый фрагмент кода делает то же самое.
Теперь вам придется объяснить, почему [,,,,,] генерирует только массив длиной 5, а не 6. ;-)
когда я искал, я не мог найти. Я попробовал и выложил. Не подскажете, как убрать отрицательные отметки :(
new Array(5) возвращает разреженный массив или массив с 5 пустыми местами внутри. Единственное, что это делает, это устанавливает свойство length объекта массива на указанный аргумент (в данном случае 5).
console.info(new Array(5)) // browser console --> [empty × 5]Поэтому, естественно, если вы попытаетесь распечатать его содержимое, оно покажет вам, что у вас есть 5 пустых мест, разделенных ,
console.info(new Array(5).toString()) // ,,,, <-- 5 empty ',' separated elementsкогда я искал, я не мог найти. Я попробовал и выложил. Не подскажете, как убрать отрицательные отметки :(
"отрицательные оценки"? Вы имеете в виду отрицательный голос -1 на ваш вопрос?
это пространство между элементами.