Поскольку здесь имеет значение порядок операций (который определяется приоритетом оператора ). С вашим первым оператором if:
if(!password.length <= 7)
ваш password.length
преобразуется в логическое значение благодаря оператору !
. Затем, поскольку это логическое значение используется в контексте неравенства, оно будет преобразовано в число, где true
становится 1
, а false
становится 0
. Таким образом, ваше if
условие всегда будет оцениваться как true
как 0/1 <= 7
.
Во втором операторе if, однако,
if (password.length >= 7) {
вы фактически проверяете длину строка. Ваша функция будет return true
, если длина вашего пароля 7 или больше. Однако вы не определили, что делать, если это не так, поэтому по умолчанию ваша функция будет возвращать undefined
неявно.