2012-06-10 2 views

ответ

2

Поскольку new Array(4) неявно приводится к строке, которая будет равна ",,," (четыре пустых элемента, разделенные запятой).

2

Потому что Array(4).toString() возвращает ",,," - 4 пустые элементы, так что только запятые между ними

5
console.log(new Array(4).toString()); // ",,," 

отлиты в строку с делать оба равны выше значение.

",,," == ",,," // true 

JS видит, что на левой руке является строкой и на правой стороне массив, который не подходит для сравнения, он отбрасывает массив в строку, а затем делает сравнение.

Обратите внимание, что:

log(",,," === new Array(4)); 

приведет к false начиная === проверок не только для value но type и типы различны, конечно.

1

Массив в строковой форме создает список элементов, разделенных запятыми, то есть 1,2,3,4. Если в массиве нет элементов, оно будет отображаться как ,,,.

(new Array(4)).toString() производит ,,,.

Отметьте, что new Array(4) === ",,," возвращает false.

Смежные вопросы