Можно создать дубликат:
Why does “,,,” == Array(4) in Javascript?Почему ",,," == новый массив (4)
В JavaScript почему
",,," == new Array(4)
Он возвращает истину в Chrome Developer Tools и consolejs console.
Можно создать дубликат:
Why does “,,,” == Array(4) in Javascript?Почему ",,," == новый массив (4)
В JavaScript почему
",,," == new Array(4)
Он возвращает истину в Chrome Developer Tools и consolejs console.
Поскольку new Array(4)
неявно приводится к строке, которая будет равна ",,,"
(четыре пустых элемента, разделенные запятой).
Потому что Array(4).toString()
возвращает ",,,"
- 4 пустые элементы, так что только запятые между ними
console.log(new Array(4).toString()); // ",,,"
отлиты в строку с делать оба равны выше значение.
",,," == ",,," // true
JS видит, что на левой руке является строкой и на правой стороне массив, который не подходит для сравнения, он отбрасывает массив в строку, а затем делает сравнение.
Обратите внимание, что:
log(",,," === new Array(4));
приведет к false
начиная ===
проверок не только для value
но type
и типы различны, конечно.
Массив в строковой форме создает список элементов, разделенных запятыми, то есть 1,2,3,4
. Если в массиве нет элементов, оно будет отображаться как ,,,
.
(new Array(4)).toString()
производит ,,,
.
Отметьте, что new Array(4) === ",,,"
возвращает false.
'new Array (4) .toString()' – copy
Вид иронии, что '[,,,]! = New Array (4)' –
Добро пожаловать в JavaScript. –