Я видел много объяснений javascript оператора равенства идентичности ===
, но кажется, что они не совсем точны, как то, что мы понимаем под равенством идентичности на других языках, таких как Java.
Кажется, для базовых типов (таких как число, строка), ===
return true указывает, имеют ли две переменные один и тот же тип и значение. Но не обязательно одно и то же (ссылки на один и тот же объект). Но для массивов и карт это так. Вот несколько примеров, которые меня смущают:
s1 = 'a' + '1'
s2 = 'a' + '1'
s1 === s2 // true, even they actually reference two different
objects in memory which suppose to be different identities.
a1 = [1,2]
a2 = [1,2]
a1 === a2 // false, as they reference two different objects in memory, even their values are the same.
Может ли кто-нибудь подтвердить мое понимание? Также существует реальная проверка идентичности для строк в Javascript. т.е. s1 === s2
должен вернуть false
в приведенном выше примере?