인프런 커뮤니티 질문&답변

브래드님의 프로필 이미지

작성한 질문수

쉽고 자연스럽게 배워보는 Javascript 입문 - 코드스쿼드 마스터즈 코스 레벨1

객체를 활용해 사칙연산 구현

엔터치면 종료하도록 구현하기

18.07.10 18:18 작성

·

711

0

강사님 안녕하세요!

농담까지 너무 재미있게 배우고 있습니다 :)

수업 마지막 쯔음에 수 입력받을 때 아무 값 없이 엔터만 했을 때도 종료할 수 있도록 해보라고 해서 해봤습니다. 그래서 연산자는 오류 처리했으니 가만히 두고, 두번째 수 입력 받을 때 엔터만 쳤을 경우 종료되게 했는데요. 코드는 아래 65줄입니다.

여기 조건문에서 엔터값 비교할 때 ===로 할때는 제대로 실행이 안되고 ==로 하면 제대로 실행되더라구요. 조사해보니 ==은 형변환을 하고 ===은 형변환을 안해 ===가 좀 더 정확하다고 알고있습니다. ""를 비교할 때 ==는 어떻게 형변환을 해서 제대로 실행되는건가요?

답변 2

0

브래드님의 프로필 이미지
브래드
질문자

2018. 07. 11. 10:53

Bo-young KIM님 감사합니다. 정말 [빈 문자열("")] === 0 으로 비교하니까 제대로 실행이 되네요! 제가 문자열 받고나서 Number로 정수화 시켰는데 이 과정에서 0이 된 것이군요. ==는 0이랑 "" 모두 비교할 수 있지만 ===는 0일때만 참이 되네요!!

0

Bo-young KIM님의 프로필 이미지

2018. 07. 10. 22:00

동료 학생이지만 혹시 도움이 되실까 싶어 댓글 남겨보아요!

[빈 문자열 ("")] !== [빈 문자열의 숫자변환값 (Number("") === 0)]

수 입력 받을 때 엔터를 치면 해당 변수에 정수 0으로 저장될 거에요. 그래서 엔터(빈 문자열)과 자료형이 달라서 === 연산값이 False로 나오지 싶습니다.