try {
//JSON.parse("test");
throw "Error!";
} catch (e) {
console.log("Error:" + e);
} finally {
console.log("Always call!!!");
}
예외처리를 위한 문법
try블럭 내에서 에러가 발생하면 catch 블럭에서 처리할 수 있음
throw를 통해서 일부러 에러를 발생 시킬 수 있음
비동기 함수임을 선언하는 함수.
함수를 실행하면 Promise 객체를 반환
async function f(){
return 1;
//프로미스로 감싸서 반환됨!
}
async function f(){
return Promise.resolve(1);
}
두 함수는 똑같은 결과를 반환함
let ex1 = new Promise((resolve, reject) => {
setTimeout(() => resolve("success"), 1000);
});
async function f() {
let result = await ex1();
console.log(result);
}
await는 async함수 내에서만 사용 가능
await은 then과 거의 비슷
promise가 완료될 때까지 다음 코드를 실행하지 않고 기다림
Hyper Text Transfer Protocol
HTML같은 하이퍼미디어 문서를 전송하기 위한 프로토콜
async funcrion insertPost(reqUrl, data){
const res = await fetch(resqUrl, {
method: "POST",
headers: {
"content-Type": "application/json",
},
redirect: "follow",
body: JSON.strinigy(data),
});
return res.json();
}
insertPost("https://blah", {answer:42});
연속적으로 호출되는 함수들 중 마지막 함수만 호출하는 기법
let timer = null;
inputText.onkeydown = (event) => {
if(timer) clearTimeout(timer);
if(event.target.value){
timer = setTimeout(() => {
//자동완성 호출
}, 200);
}
}
//새로운 이벤트가 호출되었을 때,
//timer가 동작 중이라면 제거하고 새롭게 추가하는 방식
사용자의 마지막 행동이 중요
보통 자동완성에서 많이 사용
함수 호출되고 일정 시간동안 연속으로 호출되는 함수를 무시하는 기법
(과도하게 함수가 호출되는것을 막기 위함)
주로 스크롤링에 관한 이벤트에서 사용
let timer = null;
body.onscroll = (event) => {
if(!timer){
timer = setTimeout(() => {
timer = null;
//특정 로직 동작
}, 200);
}
}
새로운 이벤트가 발생했을 때, timer가 동작중이라면 무시
Application Programming Interface
Application은 모든 소프트웨어를 의미한다.
소프트웨어 간의 통신하기 위한 방법을 정의한 것
REpresentational State Transfer API
아키텍처 스타일의 디자인 뭔칙을 준수하는 API
HTTP표준을 따르기 때문에 모든 플랫폼에서 활용 가능
GET/get/member/1 (X)
GET/members/1 (O)
GET/members/delete/1(X)
DELETE/members/1(O)
GET/members/1/ (X)
GET/members/1 (O)
GET/Members/1 (X)
GET/members/1 (O)
ETC...
오늘 수업은 이해가 잘되었다...! 실습도 생각보다 잘 풀어냈고, 콘솔창을 활용해가면서 화면에 구현해나가는게 점점 익숙해지고있다는걸 느꼈다ㅎㅎ