валдиность. По идее она должна вернуть булиан в незивисисимости от того что мы ей передаем. Но когда мы отправляем пустую строку "", она возвращет нам пустую строку а не false.
Можете подсказать что за магия творится под копотом? как думает JS? В чем логика того что он возвращет пустую строку?
function isValidPassword(password) {
return password && password.length >= 6;
}
// isValidPassword("") возвращет "" а не false... WTF ?!
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/%D0%9B%D0%BE%D0%B3%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B expr1 && expr2 Возвращает значение expr1, если оно может быть преобразовано в false; иначе возвращает значение expr2. Таким образом, при использовании с величинами типа Boolean оператор && вернет true, если оба операнда могут быть преобразованы в true; иначе оператор && вернет false.
Оберни все выражение в Boolean()
password && password.length >= 6; вернет сразу password не доходя до второго условия надо преобразовать password к boolean !!password && password.length >= 6;
Обсуждают сегодня