Почему булево значение одноэлементно в природе [JavaScript]

1
var bool1 = false
var bool2 = false

bool1 === bool2 

Последний оператор возвращает true, что означает, что bool1 & bool2 указывает на тот же экземпляр объекта, я хочу понять, почему это так?

Теги:

2 ответа

5
Лучший ответ

boolean - это примитивный тип данных, а не объект. Строгое сравнение выполняет сначала проверку, если тип тот же, а затем значение.

Два булевых операнда строго равны, если оба они true или оба false.

Если вы берете экземпляр объекта Boolean,

Объект Boolean является оберткой объекта для логического значения.

вы становитесь false со строгим равенством.

var bool1 = new Boolean(false),
    bool2 = new Boolean(false);

console.log(bool1 === bool2);
0

triple equal (===) соответствует значению и типу. так как оба являются примитивными, он возвращает true.

И если bool1 & bool2 тот же экземпляр объекта, а затем изменение одного значения изменит другой, но он не изменит другое значение при изменении bool1 или bool.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню