var bool1 = false
var bool2 = false
bool1 === bool2
Последний оператор возвращает true, что означает, что bool1 & bool2 указывает на тот же экземпляр объекта, я хочу понять, почему это так?
boolean
- это примитивный тип данных, а не объект. Строгое сравнение выполняет сначала проверку, если тип тот же, а затем значение.
Два булевых операнда строго равны, если оба они
true
или обаfalse
.
Если вы берете экземпляр объекта Boolean
,
Объект
Boolean
является оберткой объекта для логического значения.
вы становитесь false
со строгим равенством.
var bool1 = new Boolean(false),
bool2 = new Boolean(false);
console.log(bool1 === bool2);
triple equal (===) соответствует значению и типу. так как оба являются примитивными, он возвращает true.
И если bool1 & bool2 тот же экземпляр объекта, а затем изменение одного значения изменит другой, но он не изменит другое значение при изменении bool1 или bool.