Самый чистый способ преобразования в логический
У меня есть переменная. Позвольте называть его toto
.
Этот toto
может быть установлен на undefined
, null
, строку или объект.
Я хотел бы, чтобы самый чистый способ проверить, установлен ли toto
для данных, а это означает, что он задан для строки или объекта, и ни undefined
, ни null
, и не задает соответствующее логическое значение в другой переменной.
Я подумал о синтаксисе !!
, который будет выглядеть так:
var tata = !!toto; // tata would be set to true or false, whatever toto is.
Первый !
будет установлен в false
, если toto undefined
или null
и true
else, а второй инвертирует его.
Но это выглядит немного жутко... Так есть ли лучший/более чистый способ сделать это?
Я уже посмотрел этот вопрос, но я хочу установить значение в переменной, а не просто проверить его в инструкции if
.
Ответы
Ответ 1
Да, вы всегда можете использовать это:
var tata = Boolean(toto);
И вот несколько тестов:
for (var value of [0, 1, -1, "0", "1", "cat", true, false, undefined, null]) {
console.log(`Boolean(${typeof value} ${value}) is ${Boolean(value)}`);
}
Результаты:
Boolean(number 0) is false
Boolean(number 1) is true
Boolean(number -1) is true
Boolean(string 0) is true
Boolean(string 1) is true
Boolean(string cat) is true
Boolean(boolean true) is true
Boolean(boolean false) is false
Boolean(undefined undefined) is false
Boolean(object null) is false