메뉴 건너뛰기

2020.11.23 16:38

6장 오픈챌린지 질문

조회 수 275 댓글 1

 

 

prompt로부터 받은 값은 문자열이잖아요..?

그런데 왜 get을 parseInt로 정수화해주지 않았는데도 정상실행이 되는건지 잘 모르겠어요.

 

-------------------------------------------------------------------------

<!DOCTYPE html>

<html>

    <head></head>

    <body>

        <h2>별 문자 출력하기</h2>

        <hr>

        <script>

            get=prompt("정수를 입력하세요","");

            if(isNaN(get)){

                document.write("입력 오류 입니다.");

            }

            else{

                for(var i=0; i<get; i++){

                    for(var j=0; j<=i; j++){

                        document.write("*");

                    }

                    document.write("<br>");

                }                

            }

        </script>

    </body>

</html>

?
  • ?
    관리자 2020.11.24 09:00
    parseInt에 대해 알 고 있는 분이군요. 좋은 질문입니다.
    1. 그런데 만일 다음 코드 후
    get=prompt("정수를 입력하세요","");

    사용자가 "hello"라고 입력하였다고 합시다.
    parseInt(get) 하면 여기서 오류가 나서 프로그램 실행이 종료하게 되지요.

    그래서 오히려 다음 조건문을 사용합니다.
    if(isNaN(get)){

    즉 get에 들어 있는 내용이 숫자인지 숫자가 아닌 문자열인지를 판단합니다.
    만일 숫자가 아닌 문자열인 경우 다음의 오류 메시지를 출력하고
    document.write("입력 오류 입니다.");

    for 반복문이 실행되지 않게 합니다.

    2. 또 이런 의문을 품을 수 있겠군요.
    그러면 다음 for 문안에서 get은 문자열인데 정수 값을 가진 변수 i와 get이 어떻게 비교될 수 있나요?
    for(var i=0; i<get; i++){

    이것도 좋은 의문입니다.
    이 코드가 실행되는 시점에서 get은 분명히 숫자의 문자열 입니다("5"와 같이).
    자바스크립트는 타입의 경계를 엄격하게 체킹하지 않고(loosely typed) 숫자를 가진 문자열의 경우 숫자와 같이 다룹니다.
    정말 정확히 코드를 작성하려면 다음과 같이 하면 됩니다.
    k = parseInt(get)
    for(var i=0; i<k; i++){

    for(var j=0; j<=i; j++){

    document.write("*");

    }

    document.write("<br>");

    }

QnA

공부하면서 궁금했던 것을 질문해보세요.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 읽어주세요! 연습문제 및 실습문제 정답 공개에 관한 공지입니다. file 관리자 2017.06.20 18281
403 혹시 예전 서적인 "DHTML + 자바스크립트 프로그래밍"의 예제를 받을 수 있는 방법은 없는지요? 2 비만타쿠미 2018.09.26 116
402 한글html 1 키보드 향기 2020.03.29 922
401 한글 타이틀이 깨져 보입니다. 1 안스가리오 2020.01.06 116
400 표와 div span 4 키보드 향기 2020.04.05 109
399 페이지에 첨부하고 싶은 이미지의 위치에대해 궁금합니다 1 정택희 2017.02.13 277
398 페이지 247 에 있는 Open Challenge 05 의 CSS3로 태그 배치하기를 공부하고 있는데 질문드립니다. 1 file 워니고 2018.03.28 3878
397 테스트 관리자 2019.08.30 171
396 태그와 속성 2 tc0712 2021.09.08 72
395 크롬 오디오 자동재생 관련 질문입니다! 1 ^_^ 2018.09.30 449
394 코드 잘못된 부분을 봐주시면 정말 감사하겠습니다 1 file 입문한 사람 2020.04.01 607
393 캔버스 관련 질문 1 원그리기 2021.08.22 101
392 챕터2 연습문제 8번 김석현 2018.04.22 156
391 챕터 3의 10번 문제 1 컴공과 입문 2018.03.20 125
390 책을 종이책으로 구매했는데 1 ddd 2024.03.21 103
389 책을 마치며 7 은성 2017.04.13 492
388 책 151p 3장 오픈챌린지 문제질문입니다. 3 이상민 2019.07.19 239
387 짝수번 정답 3 idididid 2017.12.24 3136
386 질문입니다 1 1213 2018.03.06 420
385 질문드립니다. 1 ㅇㅇ 2020.06.03 306
384 질문 있습니다. 2 2021.08.19 134
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 21 Next
/ 21
위로