Преобразование строки в булевый формат может быть необходимо в двух случаях: либо само значение написано строкой ('true' или 'false'), либо нам нужен логический эквивалент строки (если строка пустая, то это false, если нет - то true).

Рассмотрим популярнейшие способы преобразования строкового типа данных в булевый, учитывая разные случаи.

test()

Метод test() сопоставляет регулярное выражение со строкой. Мы проверяем, содержит ли строка текст 'true' или нет.

let stringValue = 'true'; 
let boolValue = (/true/i).test(stringValue)  // true

JSON.parse()

Метод parse() объекта JSON анализирует строку как JSON и преобразует ее в значение соответствующего типа.

let stringValue = 'true'; 
let boolValue = JSON.parse(stringValue);  // true

Оператор сравнения

Оператор сравнения позволяет сопоставить значения элементов справа и слева. Он возвращает true, если оба операнда имеют одинаковое значение, и false в противном случае.

let stringValue = 'true'; 
let boolValue = (stringValue == 'true');  // true

Boolean()

Объект Boolean() - это оболочка для преобразования в булевые значения. Пустые объекты оцениваются как ложные, а непустые объекты оцениваются как истинные.

Boolean('true');  // true
Boolean('false');  // true
Boolean(' ');  // true
Boolean('');  // false

Двойное отрицание (!!)

Суть такого оператора - инвертировать результат одинарного оператора (!), который преобразует объект в булевое значение. Принцип работы тот же, что и у Boolean(), однако в коде выглядит более лаконичней.

Примеры работы одинарного оператора !:

!'test';  // false
!'true';  // false
!'false';  // false
!' ';  // false
!'';  // true

С двойным отрицанием:

!!'test';  // true
!!'true';  // true
!!'false';  // true
!!' ';  // true
!!'';  // false