Я столкнулся с такой ситуацией, что пустая строка это и не тру и не фалс
'' === true // false
'' === false // false
есть ли какое-то объяснение этому ?
Я столкнулся с такой ситуацией, что пустая строка это и не тру и не фалс
'' === true // false
'' === false // false
есть ли какое-то объяснение этому ?
Вы используете оператор сравнения ===, который учитывает в том числе и тип данных операндов. И поскольку в с одной стороны у вас строковая переменная, а с другой булевая, результат будет отрицательный. Как и например для 1 === true или 0 === false.
При обычном сравнении == за счет неявного приведения типов вы получите иной результат.
console.log( '' === false) ;
console.log( '' == false);
При обычном сравнении как false вычисляются само false, 0, "", '', null, undefined, NaN. Все остальное равно true, как и упомянутый вами [].
Повторюсь, при сравнении === имеет значение равенство типов данных. В этом и есть вся суть данного оператора.
if ([]) console.log(123) // 123а еслиif ('') console.log(123) // ничего– Рома Бойко Jun 26 '18 at 12:46if– Grundy Jun 26 '18 at 12:48