1. setTimeout, setInterval
setInterval 함수가 실행될 때 반환되는 타이머 ID는, 그 setInterval 인스턴스를 고유하게 식별하는 정수값입니다. 이 타이머 ID는 그에 대응하는 반복 작업을 제어하기 위해 사용됩니다.
다시 말하면, setInterval로 생성된 각 반복 작업은 그것만의 고유한 ID를 가집니다. 그리고 나중에 이 ID를 clearInterval에 전달함으로써 해당 반복 작업을 중지할 수 있습니다.
Q왜 3번만 출력되지?????????
코드가 위에 작성됬으니 먼저 출력하고 setTimeout이 발동되서 종료해야되는거 아님???
아니다.
setTimeout이 같은 초일 경우 우선시 되어 적용되기 때문에 4번째 출력은 출력전, 중단되고 종료 된다.
let id = setInterval(function(){
console.log("park")
},1000) // id라는 변수에 key값이 되는 랜덤한 정수 저장
setTimeout(function() {
clearInterval(id);
// 그 정수를 clearInterval 메소드에 사용해서 반복을 멈출수 있다.
},4000)
2.호이스팅: 선언적 함수는 맨위로 끌어올려진다.
"호이스팅(hoisting)"은 JavaScript에서 변수와 함수 선언이 해당 스코프의 상단으로 끌어올려지는 현상을 가리킵니다
즉,익명함수보단 선언적 함수가 위로가는 현상을 호이스팅이라 한다.
(아래의 출력은 당연히 아래로 내려간 익명함수가 하게된다.)
foo(); // 출력: "선언적 함수"
foo = function() {
console.log("익명 함수");
}
function foo() {
console.log("선언적 함수");
}
foo(); // 출력: "익명 함수"
'🗃️javascript > 이론정리' 카테고리의 다른 글
JSON 문자열과 객체 다루기 (0) | 2023.10.26 |
---|---|
섀도잉[이름 동일하면 범위 무관 값동일] || 콜백함수[객체지향의 기운이..] (0) | 2023.10.25 |
JavaScript에서 숫자 * undefined = NaN (0) | 2023.10.07 |
객체를 선언할 때 키 값은 문자열이지만 특수문자가 키값이 되면 에러 (0) | 2023.10.07 |
arguments (매개변수를 다루는 유사 배열 객체) (0) | 2023.10.07 |