Почему пустая строка это и не true и не false? [дубликат]

176
06 августа 2018, 20:00

На данный вопрос уже ответили:

  • Преобразование скалярных типов при сравнении JavaScript 2 ответа

Я столкнулся с такой ситуацией, что пустая строка это и не тру и не фалс

'' === true // false
'' === false // false

есть ли какое-то объяснение этому ?

Answer 1

Вы используете оператор сравнения ===, который учитывает в том числе и тип данных операндов. И поскольку в с одной стороны у вас строковая переменная, а с другой булевая, результат будет отрицательный. Как и например для 1 === true или 0 === false.

При обычном сравнении == за счет неявного приведения типов вы получите иной результат.

console.log( '' === false) ; 
console.log( '' == false);

При обычном сравнении как false вычисляются само false, 0, "", '', null, undefined, NaN. Все остальное равно true, как и упомянутый вами [].

Повторюсь, при сравнении === имеет значение равенство типов данных. В этом и есть вся суть данного оператора.

READ ALSO
Как добавить значение из переменной в объект data для выполнения ajax запроса?

Как добавить значение из переменной в объект data для выполнения ajax запроса?

друзья! Для передачи в ajax запрос собираю данные из формы методом serializeArrayКак можно добавить значение из переменной, не связанной с формой,...

217
Сапер на JavaScript

Сапер на JavaScript

создаю сапера на JS, есть двумерный массив заполненый нулями и единицами ,1 это мина, нужно создать массив заполненый числами количеством мин...

217
Как подгружать системные шрифты?

Как подгружать системные шрифты?

Как подгружать шрифты установленные в системе на примере сайта https://wordmarkit

164
Как задать стиль функции alert() [дубликат]

Как задать стиль функции alert() [дубликат]

На данный вопрос уже ответили:

183