JavaScript равенство между объектами и строками - PullRequest
2 голосов
/ 06 августа 2010

Согласно консоли Firebug, у нас есть следующее в JavaScript:

>>> [''] == ''
true
>>> [''] == ['']
false

Найти Python гораздо более логичным, я бы ожидал, что он будет наоборот.В любом случае, я могу понять второй - очевидно, два разных объекта никогда не сравниваются друг с другом, но почему первому дают true?Какая строка будет ['', ''] сравниваться равной?

1 Ответ

3 голосов
/ 06 августа 2010

Сравнивает строковое представление массива слева со строкой справа.

alert(['', ''] == ','); // true

alert([1, 2] == '1,2'); // true

Конечно, вы можете использовать оператор строгого сравнения, чтобы избежать этого ...

alert([''] === ''); // false
...