Проблема проверки строки Javascript - PullRequest
0 голосов
/ 17 сентября 2018

Я использую следующую функцию для проверки строки:

isValidString = value => (value && value.trim() !== '');

Я ожидаю логического возврата, но когда value = '' возвращаемое значение - пустая строка.

Может кто-нибудь объяснить, почему это происходит?

Ответы [ 3 ]

0 голосов
/ 17 сентября 2018

Строки с length 0 оцениваются как false в логических выражениях в JavaScript, и поскольку вы используете логический оператор короткого замыкания AND, который останавливает дальнейшую оценку, когда обнаруживает ложное значение.Следовательно, ваше выражение возвращает пустую строку, поскольку оно привело к тому, что ваше выражение стало ложным.

0 голосов
/ 17 сентября 2018

Вы можете проверить, является ли значение неопределенным, используя значение typeof!= 'undefined'

isValidString = value => typeof value != 'undefined' && value.trim() !== '';
0 голосов
/ 17 сентября 2018

Попробуйте это.

&& оператор не присваивает логические значения, но возвращает значение последнего выполненного выражения.например, в приведенном выше методе, если вы передаете пустую строку, она возвращает value как пустую строку, эквивалентную false.и если вы передадите непустую строку, то вторая часть вернет value.trim() !== '', что либо равно true, либо false.

    isValidString = value => !!(value && value.trim() !== '');
    console.log(isValidString(""))
    console.log(isValidString("a"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...