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

В Javascript существует несколько вариантов преобразовать строку в логический тип. Тем не менее, вы должны быть очень осторожны: это может нарушить логику вашего приложения и привести к непредвиденным ошибкам. И так для того чтобы избежать этих ошибок, была написана эта статья.

  1. Вы можете использовать оператор if(myString). Например:

Как я уже говорил, if(!myString) возвращает true, потому-что выражение проверяется только на существование (например чтоб оно не равнялось null или undefined).

2. Что к примеру если создать логический тип из строки?

Почему бы не создать логический тип из строки? Давайте возьмём задачу из предыдущего примера:

Как вы видите, if(Boolean(“false”)) выполняется как истина, почему? Когда вы создаёте логический тип из строки, выражение не проверяется на «true» или «false». Вместо этого, и скорей всего не правильно, проверяется не является ли выражение false (например 0, false, undefined, пустая строка, null и т.д.) Получается что myOtherString не является пустой строкой, хоть мы ей и присвоили значение false.

3. Ок, давайте попробуем сравнивать нашу строку со строкой «true»

Действительно, наиболее правильным вариантом будет сравнивать нашу переменную со строкой «true», если та то выражение истинно, в противном случае выражение будет false. Мы можем сделать это таким образом:

Замечательно, похоже, наша проблема решена! Но знаете что? Этот код немного избыточен, и слишком длинный для простой проверки на истину. Давайте немного сократим его:

Источник: http://heyjavascript.com/javascript-string-to-boolean/

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *