Я хотел бы понять странное поведение оператора JavaScript и оператора равенства, как показано ниже.Сравнение объектов в JavaScript
var a = {};
var b = {};
a === b; //false
a == b; //false
var c = '';
var d = '';
c === d; //true
c == d; //true
Все четыре переменные a
, b
, c
и d
являются объектами. Но, сравнивая их, первый случай дает false, а второй - true.
Я изучал сравнение со следующим источником: https://msdn.microsoft.com/en-us/library/d53a7bd4(v=vs.94).aspx
Согласно вышеуказанной статье, за исключением числа и булево все сравнивается со ссылкой вместо значения. Итак, как первый случай возвращает false, а второй - true.
'Так как первый случай возвращает истину и второй один false.' наоборот, первая ложь, второе верно –
Строки примитивы. Добро пожаловать в прекрасный мир JS. –
Возможный дубликат [Является ли String примитивным типом или объектом в Javascript?] (Http://stackoverflow.com/questions/7675127/is-string-a-primitive-type-or-object-in-javascript) –