2
답변 1 javascript beginner입니다. ^^; 질문을 좀 드려봅니다. 답변 1 3 (/p/javascript)
안녕하세요. html5와 css3은 나름대로 공부를 했고, jquery 를 공부하다가 javascript에 대한 기초가 없어서 javascript를 책만 보고 독학으로 공부중입니다....

안녕하세요.

html5와 css3은 나름대로 공부를 했고, jquery 를 공부하다가 javascript에 대한 기초가 없어서 javascript를 책만 보고 독학으로 공부중입니다..=.-;


javascript에 관한 꼼꼼한 설명이 잘 된 책을 만나지 못해선지,,

갈수록 조금 헷갈리는 부분이 있어서 여기다 질문을 올려봅니다..

일단, 전체구문입니다.

==============

<script>

/*

예제 03: 1초에 한번씩 숫자 값 출력하기

변수 값을 1초에 한 번 1씩 증가시키고 이 값을 화면에 출력해 주세요.

단, 정지버튼(#stop)을 누르면 더 이상 실행되지 않게 타이머 함수를 중지시켜 주세요.

*/

$(document).ready(function() {

var $output = $("#output");

var count = 0;

var timerID=0;   // 이 부분을 잘 모르겠습니다. 왜 숫자 0이 들어가는지요?

timerID = setInterval(function() {

count++;

$output.text(count);

}, 1000);

$("#stop").click(function() {

  clearInterval(timerID);

});

})

</script>

</head>

<body>

<button id="stop">멈춤</button>

<div id="output">

0

</div>

</body>

</html>

============

위 구문은 원문입니다.

이렇게 돼어 있는데요..

$(function(){

var count = 0;

$output = $("#output");

setInterval(function(){

count++;

$output.text(count);

},2000);

});

 위 함수는 제가 잘 이해를 합니다..


그런데, clearInterval()함수를 사용할때,,

var timerID=0; // 이 부분을 잘 모르겠습니다. 왜 숫자 0이 들어가는지요?

timerID = setInterval(function() {

 count++;

 $output.text(count);

}, 1000);

$("#stop").click(function() {              

clearInterval(timerID);

});

위에 밑줄을 친 구문은 이해를 하겠는데,,

var timerID에 숫자 0 이 들어가는지를 모르겠습니다. -.-;;;

그래서, 일단은 맨위 원문에서 var timerID = 0; 이것을 삭제를 해도

작동이 되더군요....

그렇다면, 왜 책의 저자는 굳이 var timerID = 0; 이라는 변수는 넣었는지..

설령 그런 변수는 넣는다해도 왜 var timerID에 0을 넣었는지 궁금합니다. -.-;;;;


귀찮은 질문올린 것 같네요...^^;;

자세한 설명을 해주시면 감사드립니다...^^;;;;;



+
핀란디아 님께서 10개월 전에 자바스크립트에 올린 질문

javascript beginner입니다. ^^; 질문을 좀 드려봅니다.

2
답변 1 javascript beginner입니다. ^^; 질문을 좀 드려봅니다. 답변 1 3 (/p/javascript)
안녕하세요. html5와 css3은 나름대로 공부를 했고, jquery 를 공부하다가 javascript에 대한 기초가 없어서 javascript를 책만 보고 독학으로 공부중입니다....

안녕하세요.

html5와 css3은 나름대로 공부를 했고, jquery 를 공부하다가 javascript에 대한 기초가 없어서 javascript를 책만 보고 독학으로 공부중입니다..=.-;


javascript에 관한 꼼꼼한 설명이 잘 된 책을 만나지 못해선지,,

갈수록 조금 헷갈리는 부분이 있어서 여기다 질문을 올려봅니다..

일단, 전체구문입니다.

==============

<script>

/*

예제 03: 1초에 한번씩 숫자 값 출력하기

변수 값을 1초에 한 번 1씩 증가시키고 이 값을 화면에 출력해 주세요.

단, 정지버튼(#stop)을 누르면 더 이상 실행되지 않게 타이머 함수를 중지시켜 주세요.

*/

$(document).ready(function() {

var $output = $("#output");

var count = 0;

var timerID=0;   // 이 부분을 잘 모르겠습니다. 왜 숫자 0이 들어가는지요?

timerID = setInterval(function() {

count++;

$output.text(count);

}, 1000);

$("#stop").click(function() {

  clearInterval(timerID);

});

})

</script>

</head>

<body>

<button id="stop">멈춤</button>

<div id="output">

0

</div>

</body>

</html>

============

위 구문은 원문입니다.

이렇게 돼어 있는데요..

$(function(){

var count = 0;

$output = $("#output");

setInterval(function(){

count++;

$output.text(count);

},2000);

});

 위 함수는 제가 잘 이해를 합니다..


그런데, clearInterval()함수를 사용할때,,

var timerID=0; // 이 부분을 잘 모르겠습니다. 왜 숫자 0이 들어가는지요?

timerID = setInterval(function() {

 count++;

 $output.text(count);

}, 1000);

$("#stop").click(function() {              

clearInterval(timerID);

});

위에 밑줄을 친 구문은 이해를 하겠는데,,

var timerID에 숫자 0 이 들어가는지를 모르겠습니다. -.-;;;

그래서, 일단은 맨위 원문에서 var timerID = 0; 이것을 삭제를 해도

작동이 되더군요....

그렇다면, 왜 책의 저자는 굳이 var timerID = 0; 이라는 변수는 넣었는지..

설령 그런 변수는 넣는다해도 왜 var timerID에 0을 넣었는지 궁금합니다. -.-;;;;


귀찮은 질문올린 것 같네요...^^;;

자세한 설명을 해주시면 감사드립니다...^^;;;;;



+
핀란디아 님께서 10개월 전에 자바스크립트에 올린 질문
0
 
kimho 10개월 전
답변 올려드렸구요, 자바스크립트를 비롯하여 언제든지 부담없이 질문 주시기 바랍니다. 핀란디아님의 실력 향상을 위해 열심히 답변드려보겠습니다^^
0
 
핀란디아 10개월 전
네. 감사드립니다. 프로그래밍이 생소하지만,,신세계를 가본다는 셈치고,,,질문을 드리겠습니다. 외람된 ,좀 그렇지만,,가급적 초보의 입장에서 초보가 잘 이해를 할 수있게,,,답변을 주시면 정말 정말 감사드리겠습니다. -.-;;;;;;
0
 
kimho 10개월 전
앞으로 답변을 더욱 쉽게 해 드리도록 하겠습니다. 많이 많이 질문주세요~^^

1개의 답변

1
[답변]javascript beginner입니다. ^^; 질문을 좀 드려봅니다. 2 (/p/javascript)
setInterval() 함수의 리턴 값에 대한 질문으로 보여집니다.setInterval() 타이머 함수가 실행되면 이 함수는 이 타이머의 실행을 멈출 때 사용할 ID 값을 숫..

setInterval() 함수의 리턴 값에 대한 질문으로 보여집니다.

setInterval() 타이머 함수가 실행되면 이 함수는 이 타이머의 실행을 멈출 때 사용할 ID 값을 숫자로 반환하게 됩니다.

이 ID값을 clearInterval() 함수의 인자로 넣어주면 타이머가 멈추게 됩니다.

올려 주신 예제에서 보면 setInterval() 함수에 의해 반환된 값이 timerID라는 변수 값으로 담기게 되고 이 변수 값을 clearInterval(timerID) 라고 인자로 넣어줄 때 타이머가 멈추도록 되어있습니다.

보충 설명을 드리자면, ID를 반환하는 이유는 어떤 타이머를 멈춰야 할 지 구분하는 값으로 ID를 반환하는 것입니다. 만약 타이머가 여러 개이면 어떤 타이머를 멈춰야 하는 지 구분하는 값이 필요하기 때문입니다.

그런데 만약 setInterval() 함수가 여러 개가 있으면 각 setInterval() 함수마다 각각 ID가 숫자로 하나씩 부여가 됩니다. 
다시 말해, 처음 setInterval()함수의 ID는 1이 되고, 다음 setInterval()의 ID는 2가 되고..., 이런 식입니다.

즉, 1부터 부여가 되기 때문에 0이 부여되는 일은 없습니다.

올려 주신 예제에서 timerID에 0을 부여한 이유는 아직 setInterval() 함수의 ID가 부여되지 않았다는 의미로 0값을 초기 값으로 넣어준 것입니다.

물론 초기 값을 세팅하지 않아도 실행하는데는 문제가 없지만 setInterval() 함수의 리턴 값 타입이 숫자형이기 때문에 초기 값을 0으로 좀 더 명확하게 세팅한 의미라고 보시면 되겠습니다.

 

사탕 주기
+
kimho 님께서 10개월 전에 자바스크립트에 올린 글
0
 
dedode 10개월 전
해설이 명료하시네요!
0
 
핀란디아 10개월 전
자세한 답변에 감사드립니다. 사실, 여러번 읽었는데,,희미하게 뭔가 감이 오는 것 같지만, 확실히 이해가 잘 안되네요. 제가 머리가 굳어선가 봅니다 .-.-;; 그래도 이 답변을 내일이나 모레든간에 계속해서 읽어보겠습니다. 자바스크립트 책을 급하게 빨리 배워가다보니,,,이해는 했어도,,책의 지나간 페이지에서 배운 것들이 아직 설익은 상태라서 머리속에서 계속 헷갈리고 갸우뚱하는 것 같습니다. -.-;;;
조회수 231
답글 1
URL