Операторы сравнения JavaScript: идентичность против равенства

Я пытался понять разницу между операторами сравнения JavaScript: идентичность и равенство. Из того, что я читал, если вы проверите равенство двух объектов с помощью ==, JavaScript попытается выяснить, относятся ли они к одному типу, а если нет, попытается привести их к тому же типу. Однако === ведет себя иначе. Итак, в качестве примера:

var n = "1";
console.log(n==1);        // outputs true
console.log(n===1);       // outputs false

Итак, в чем разница между этими «тождественными» операторами и обычными операторами равенства? Какая польза от обоих?

Есть ли различия в производительности? Я бы подумал, что оператор идентификации будет быстрее, потому что он не t делать преобразование.

Кроме того, чем они отличаются, когда речь идет о более сложных объектах, таких как массивы? Самое главное, что в соглашениях говорится о том, когда один должен использоваться вместо другого, почему?

19
задан Hristo 6 August 2011 в 22:32
поделиться