На данный вопрос уже ответили:
Я столкнулся с такой ситуацией, что пустая строка это и не тру и не фалс
'' === true // false
'' === false // false
есть ли какое-то объяснение этому ?
Вы используете оператор сравнения ===
, который учитывает в том числе и тип данных операндов. И поскольку в с одной стороны у вас строковая переменная, а с другой булевая, результат будет отрицательный. Как и например для 1 === true
или 0 === false
.
При обычном сравнении ==
за счет неявного приведения типов вы получите иной результат.
console.log( '' === false) ;
console.log( '' == false);
При обычном сравнении как false
вычисляются само false
, 0
, "", ''
, null
, undefined
, NaN
. Все остальное равно true
, как и упомянутый вами []
.
Повторюсь, при сравнении ===
имеет значение равенство типов данных. В этом и есть вся суть данного оператора.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
друзья! Для передачи в ajax запрос собираю данные из формы методом serializeArrayКак можно добавить значение из переменной, не связанной с формой,...
создаю сапера на JS, есть двумерный массив заполненый нулями и единицами ,1 это мина, нужно создать массив заполненый числами количеством мин...
Как подгружать шрифты установленные в системе на примере сайта https://wordmarkit