Кратко
СкопированоМетод to
возвращает представление массива в виде строки, состоящей из значений всех элементов массива, разделённых запятой.
Пример
СкопированоСоздадим строку из массива:
const menuItems = ['Файл', 'Редактирование', 'Просмотр']const menuStr = menuItems.toString()console.log(menuStr)// Файл,Редактирование,Просмотр
const menuItems = ['Файл', 'Редактирование', 'Просмотр'] const menuStr = menuItems.toString() console.log(menuStr) // Файл,Редактирование,Просмотр
Как пишется
СкопированоArray
не имеет аргументов.
Array
возвращает строку, состоящую из строкового представления значений всех элементов массива, разделённых запятой.
Как понять
Скопированоto
является одним из базовых методов, реализованных в Object
. Массивы переопределяют этот метод. Согласно спецификации ECMAScript, метод Array
при вызове обращается к методу .join
.
Проверим, что результат работы to
и .join
совпадает:
const years = [1970, 1980, 1990]console.log(years.toString())console.log(years.join())// 1970,1980,1990// 1970,1980,1990
const years = [1970, 1980, 1990] console.log(years.toString()) console.log(years.join()) // 1970,1980,1990 // 1970,1980,1990
Если метод .join
не может быть вызван, будет вызван Object
:
const years = [1970, 1980, 1990]years.join = null // обнуляем возможность вызывать .join()console.log(years.toString())// [object Array]
const years = [1970, 1980, 1990] years.join = null // обнуляем возможность вызывать .join() console.log(years.toString()) // [object Array]
Некоторые значения элементов в строковом представлении будут изменены.
null
, undefined
, а также незаполненные элементы будут представлены пустой строкой:
const numbers = [0, , 1, undefined, null, Infinity]console.log(numbers.toString())// 0,,1,,,Infinity
const numbers = [0, , 1, undefined, null, Infinity] console.log(numbers.toString()) // 0,,1,,,Infinity
Значения, не являющиеся примитивными типами, будут представлены соответствующим строковым представлением:
const obj = {name: 'Firefox'}const func = obj => obj.nameconst arr = [[42]]const objects = [obj, func, arr]console.log(objects.toString())// [object Object],obj => obj.name,42
const obj = {name: 'Firefox'} const func = obj => obj.name const arr = [[42]] const objects = [obj, func, arr] console.log(objects.toString()) // [object Object],obj => obj.name,42
Подсказки
Скопировано💡 Метод to
вызывается автоматически, когда массив должен быть представлен как строка:
const names = ['Рататоск', 'Иггдрасиль']console.log(names + ' и Хвергельмир')// Рататоск,Иггдрасиль и Хвергельмир
const names = ['Рататоск', 'Иггдрасиль'] console.log(names + ' и Хвергельмир') // Рататоск,Иггдрасиль и Хвергельмир