JS 튜토리얼

제이에스 홈 JS 소개 JS 어디로 JS 출력 JS 문 JS 구문 JS 코멘트 JS 변수 제이에스렛 JS 상수 JS 연산자 JS 산술 JS 할당 JS 데이터 유형 JS 함수 JS 객체 JS 이벤트 JS 문자열 JS 문자열 메서드 JS 문자열 검색 JS 문자열 템플릿 JS 번호 JS 숫자 메서드 JS 배열 JS 배열 메서드 JS 배열 정렬 JS 배열 반복 JS 배열 상수 JS 날짜 JS 날짜 형식 JS 날짜 가져오기 메서드 JS 날짜 설정 방법 JS 수학 JS 랜덤 JS 부울 JS 비교 JS 조건 JS 스위치 JS 루프 In에 대한 JS 루프 의 JS 루프 JS 루프 동안 JS 브레이크 JS 이터러블 JS 세트 JS 맵 JS 유형 JS 유형 변환 JS 비트와이즈 JS 정규 표현식 JS 오류 JS 범위 JS 호이스팅 JS 엄격 모드 JS 이 키워드 JS 화살표 함수 JS 클래스 JS JSON JS 디버깅 JS 스타일 가이드 JS 모범 사례 JS 실수 JS 성능 JS 예약어

JS 버전

JS 버전 JS 2009(ES5) JS 2015(ES6) JS 2016 JS 2017 JS 2018 JS IE / 엣지 JS 연혁

JS 객체

객체 정의 개체 속성 개체 메서드 개체 표시 개체 접근자 객체 생성자 개체 프로토타입 객체 반복 가능 객체 세트 객체 맵 개체 참조

JS 함수

기능 정의 기능 매개변수 함수 호출 함수 호출 기능 적용 함수 클로저

JS 클래스

수업 소개 클래스 상속 클래스 정적

JS 비동기

JS 콜백 JS 비동기 JS 약속 JS 비동기/대기

JS HTML DOM

DOM 소개 DOM 메서드 DOM 문서 DOM 요소 DOM HTML DOM 양식 DOM CSS DOM 애니메이션 DOM 이벤트 DOM 이벤트 리스너 DOM 탐색 DOM 노드 DOM 컬렉션 DOM 노드 목록

JS 브라우저 BOM

JS 창 JS 화면 JS 위치 JS 연혁 JS 네비게이터 JS 팝업 경고 JS 타이밍 JS 쿠키

JS 웹 API

웹 API 소개 웹 양식 API 웹 기록 API 웹 스토리지 API 웹 작업자 API 웹 가져오기 API 웹 지리적 위치 API

JS 아약스

AJAX 소개 AJAX XMLHttp AJAX 요청 AJAX 응답 AJAX XML 파일 AJAX PHP AJAX ASP AJAX 데이터베이스 AJAX 애플리케이션 AJAX 예제

JS JSON

JSON 소개 JSON 구문 JSON 대 XML JSON 데이터 유형 JSON 구문 분석 JSON 문자열화 JSON 객체 JSON 배열 JSON 서버 JSON PHP JSON HTML JSON JSONP

JS 대 jQuery

jQuery 선택기 제이쿼리 HTML 제이쿼리 CSS 제이쿼리 DOM

JS 그래픽

JS 그래픽 JS 캔버스 JS 플로틀리 JS 차트.js JS 구글 차트 JS D3.js

JS 예제

JS 예제 JS HTML DOM JS HTML 입력 JS HTML 객체 JS HTML 이벤트 JS 브라우저 JS 편집기 JS 연습 JS 퀴즈 JS 인증서

JS 참조

자바스크립트 객체 HTML DOM 객체


비동기 자바스크립트

"나중에 끝낼게!"

다른 함수와 병렬로 실행되는 함수를 비동기식이라고 합니다.

좋은 예는 JavaScript setTimeout()입니다.

비동기 자바스크립트

이전 장에서 사용한 예제는 매우 단순화되었습니다.

예제의 목적은 콜백 함수의 구문을 보여주기 위한 것입니다.

예시

function myDisplayer(something) {
  document.getElementById("demo").innerHTML = something;
}

function myCalculator(num1, num2, myCallback) {
  let sum = num1 + num2;
  myCallback(sum);
}

myCalculator(5, 5, myDisplayer);

위의 예에서 myDisplayer는 함수의 이름입니다.

myCalculator()인수로 전달됩니다 .

실제 세계에서 콜백은 비동기 함수와 함께 가장 자주 사용됩니다.

대표적인 예가 JavaScript setTimeout()입니다.


시간 초과를 기다리는 중

JavaScript 함수 setTimeout()를 사용할 때 시간 초과 시 실행할 콜백 함수를 지정할 수 있습니다.

예시

setTimeout(myFunction, 3000);

function myFunction() {
  document.getElementById("demo").innerHTML = "I love You !!";
}

위의 예에서 myFunction는 콜백으로 사용됩니다.

myFunctionsetTimeout()인수로 전달됩니다 .

3000은 시간 초과 전의 밀리초 수이므로 myFunction()3초 후에 호출됩니다.

함수를 인수로 전달할 때 괄호를 사용하지 않는 것을 기억하십시오.

오른쪽: setTimeout(myFunction, 3000);

잘못된: setTimeout(myFunction(), 3000);

함수 이름을 다른 함수에 인수로 전달하는 대신 항상 전체 함수를 전달할 수 있습니다.

예시

setTimeout(function() { myFunction("I love You !!!"); }, 3000);

function myFunction(value) {
  document.getElementById("demo").innerHTML = value;
}

위의 예에서 function(){ myFunction("I love You !!!"); } 는 콜백으로 사용됩니다. 완전한 기능입니다. 완전한 함수는 인수로 setTimeout()에 전달됩니다.

3000은 시간 초과 전의 밀리초 수이므로 myFunction()3초 후에 호출됩니다.


간격 대기:

JavaScript 함수를 사용할 때 setInterval()각 간격에 대해 실행할 콜백 함수를 지정할 수 있습니다.

예시

setInterval(myFunction, 1000);

function myFunction() {
  let d = new Date();
  document.getElementById("demo").innerHTML=
  d.getHours() + ":" +
  d.getMinutes() + ":" +
  d.getSeconds();
}

위의 예에서 myFunction는 콜백으로 사용됩니다.

myFunctionsetInterval()인수로 전달됩니다 .

1000은 간격 사이의 밀리초 수이므로 1초 myFunction()마다 호출됩니다.


파일을 기다리는 중

스크립트나 파일과 같은 외부 리소스를 로드하는 함수를 생성하면 완전히 로드되기 전에는 콘텐츠를 사용할 수 없습니다.

이것은 콜백을 사용하기에 완벽한 시간입니다.

이 예에서는 HTML 파일( mycar.html)을 로드하고 파일이 완전히 로드된 후 HTML 파일을 웹 페이지에 표시합니다.

파일을 기다리는 중:

function myDisplayer(some) {
  document.getElementById("demo").innerHTML = some;
}

function getFile(myCallback) {
  let req = new XMLHttpRequest();
  req.open('GET', "mycar.html");
  req.onload = function() {
    if (req.status == 200) {
      myCallback(this.responseText);
    } else {
      myCallback("Error: " + req.status);
    }
  }
  req.send();
}

getFile(myDisplayer);

위의 예에서 myDisplayer는 콜백으로 사용됩니다.

myDisplayergetFile()인수로 전달됩니다 .

다음은 사본입니다 mycar.html.

mycar.html


<img src="img_car.jpg" alt="Nice car" style="width:100%">

<p>A car is a wheeled, self-powered motor vehicle used for transportation.
Most definitions of the term specify that cars are designed to run primarily on roads, to have seating for one to eight people, to typically have four wheels.</p>

<p>(Wikipedia)</p>