inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

- 연습문제 3

안녕하세요, 코드리뷰 부탁드리려고 합니다.

해결된 질문

233

Go9

작성한 질문수 7

1

좋은 강의 해주셔서 감사드립니다.

계속 코드를 짜보았지만, 열어보면 무한 로딩만 걸리다가 디버그툴에 의해 중지되기만 하고, 결국 돌아가지를 않아서요 :(
몇 번을 살펴보아도 아직 부족한 탓에 문제점을 찾질 못했습니다.

코드 리뷰 한번 부탁드립니다. 

 

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
</head>
<body>
    <script>
        var numbers = {};
        numbers.Prime = [];
        numbers.All = [];

        numbers.isprime = function(number) {
            for(i = 2; i < number; i++) {
                if(number % i === 0) {
                    return false;
                }
            }   
            return true;
        };
        
        numbers.AllNumber = function(maxnum) {
            for(i = 2; i <= maxnum; i++) {
                this.All.push(i);
            }
        };

        numbers.splitprime = function() {
            for(i = 0; i <= this.All.length; i++) {
                var a = this.All[i];
                if (this.isprime(a)) {
                    this.Prime.push(a);        
                }
            }
        };
        numbers.printprime = function() {
            document.write("전체 소수의 개수: " + this.Prime.length + "<br>" + "<br>");
            for(var i = 0; i < this.Prime.length; i++) {
                document.write((i+1) + "번째 소수: " + this.Prime[i] + "<br>");
            }
        };
        
        numbers.AllNumber(10);
        numbers.splitprime();
        numbers.printprime();

    </script>    
</body>
</html>

javascript

답변 3

2

TTOzzi

안녕하세요. 지나가던 수강생인데 혹시나 도움이 될까 싶어 답변 남깁니다.

무한 로딩만 걸리다가 디버그툴에 의해 중지되는 문제 -> for문에 i = 0 -> var i =0 으로 바꿔주시면 해결됩니다.

추가로 splitprime 함수에서 배열은 1번이아닌 0번부터 시작하기때문에 i <= this.All.length i < this.All.length 로 바꿔주셔야합니다.

1

호눅스

참 그리고 이렇게 디버깅이 어려울 때는 console.log(변수명)을 이용해서 중간중간에 값을 찍어보는 방법과 브레이크포인트라는 것을 활용하는 방법도 있으니 검색해 보세요. 

1

호눅스

위에 Red님이 답변 주셨네요. 

이 문제 때문에 요즘은 var 대신에 let이나 const를 사용합니다. 

전체 소스를 약간 고쳤습니다. 아래 참고하세요.

https://codepen.io/honux77/pen/BgdOeJ?editors=1000

https://gist.github.com/honux77/7032ad6c9a2c086141cc5d207c4be452

push 도중 "오류가 나면서 완료됨." 문제 해결

0

271

0

세 번째 프로그램 관련 질문입니다

0

253

0

submit때마다 print된 구구단을 지우고 싶어요..

0

361

1

this 질문

0

215

0

질문드립니다!

0

246

0

동영상 권한 문제

0

398

2

뒤집는 기능, 일치 여부 기능 구현해봤습니다 .

1

244

1

코드 어디서 확인할수있나요..???

1

240

1

소스트리 자꾸 꺼지는 현상

0

286

1

질문 드립니다.

1

200

1

질문 드립니다.

0

275

2

질문 드립니다.

1

188

1

줄바꿈

1

257

1

else 생략

0

797

1

지금까지 들었는데

0

269

3

질문있습니다! var과 let

0

197

1

질문 있습니다!

1

232

1

안녕하세요 선생님, 질문있습니다.

1

186

1

let이 재선언이 됩니다! 그리고 참고 링크가 사라진듯 해요.

1

237

1

예제1번 질문있습니다.

1

244

3

숫자로 변환할때 변수을 새로 만들어 줄 필요가 있는지 궁금해요 !!

0

225

2

javascript 강의 시작합니다 !!

0

179

0

'변수 이름 잘 짓기'가 코딩 3대 난제라면 나머지 두 개는 뭘까요??(내용무)

1

449

1

라이브 코딩 보는곳좀요!

0

396

3