Как преобразовать строку в булево значение в JavaScript?

Помогите с преобразованием строкового значения в boolean

У меня есть скрытая форма на странице, которая обновляется, когда пользователь что-то выбирает из списка. В этой форме есть поля с булевыми значениями, но когда они попадают в скрытые input поля, то становятся строками.

Сейчас я проверяю значение вот так:

var userChoice = document.forms.myForm.BOOLEAN_FLAG.value;
var isEnabled = userChoice === 'true';

Это работает, но мне кажется, что должен быть более правильный способ. Может, есть какая-то встроенная функция или лучший подход для такого преобразования? Буду благодарен за советы.

А что если !!userChoice? Хотя любая непустая строка даст true, даже ‘false’. Для форм твой явный подход лучше. Откуда вообще булевы в форму попадают? Может на этапе записи сразу обработать?

Твой подход работает, но есть пару альтернатив. Я обычно делаю Boolean(userChoice && userChoice !== 'false') - покрывает больше случаев. Можно еще JSON.parse(), но там нужно ловить исключения. Твое решение через строгое сравнение самое надежное для форм - знаешь точно какие значения придут. Не усложняй, раз работает.

Можешь попробовать userChoice === 'true' ? true : false - то же самое, но некоторые любят тернарник. Или регулярку /^true$/i.test(userChoice) для нечувствительности к регистру. Но твой вариант самый читаемый. В продакшене лучше быть понятным, чем умничать.