해결된 질문
작성
·
73
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
useEffect(() => {setDisabled(!email || !password); }, [email, password]);
여기서
setDisabled(!email || !password);
!email || !password 이부분이 잘 이해가 안가서 질문드립니다!
답변 2
0
안녕하세요,
NOT 연산과 OR 연산을 확인하면 이해할 수 있습니다.
NOT: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_NOT
OR: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR
email과 password는 문자열이고, 빈 문자열은 false로 처리됩니다.
따라서, !email은 email이 입력되어 있지 않으면 true로 처리되고, !password는 password가 입력되어 있지 않을때 true로 처리됩니다.
OR(||)는 둘 중 하나만 true여도 true가 되기 때문에, !email || !password는 email 혹은 password중 하나만 빈 값이어도 결과가 true가 됩니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. dvdve님.
useEffect
안의 setDisabled(!email || !password);
부분에 대해 설명드리겠습니다.
이 코드는 이메일과 비밀번호 입력 상태에 따라 버튼을 활성화하거나 비활성화하는 로직입니다. 구체적으로는 다음과 같습니다:
!email || !password
: 이메일이나 비밀번호 중 하나라도 비어 있을 때 참(true)이 되는 논리식입니다. 즉, 입력란 중 하나라도 값이 없으면 참이 됩니다.setDisabled
: 이 함수는 버튼 등의 요소가 비활성화될지 여부를 설정하는 함수입니다. 위 논리식의 결과가 참이면 setDisabled(true)
로 작동하여 버튼을 비활성화하고, 거짓이면 setDisabled(false)
로 작동하여 버튼을 활성화합니다.그렇기 때문에 이메일과 비밀번호가 모두 입력되지 않은 상태일 때 버튼을 비활성화하여 사용자에게 비어 있는 입력란을 모두 채우도록 강제할 수 있습니다.
유사한 질문과 답변을 통해 더욱 자세한 설명을 확인하고 싶으시다면, 아래 URL을 참고하시면 도움이 될 수 있을 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.