//Attribute type과 value가 속성
input type="text" value="name"
//Property value는 input의 속성
document.querySelector('input').value
콜백 지옥은 Promise, async/await, 함수분리, 모듈화 및 라이브러리 같은 방법을 통해 해결 할 수 있다.
.then(res => {
console.log(res) //작업성공
})
.catch(err => {
console.error(err)
})
async를 함수 앞에 붙이면 그 함수는 항상 Promise를 반환, await는 async 함수 내에서만 사용이 가능하며 Promise가 이행될때까지 다른 코드 실행이 일시 중단된다.async function getData(){
try{
const response = await fetch('https://');
if(!response.ok){
throw new Error('Network response was not ok'); //정해놓은 규칙을 어긋날경우 에러처리 throw
}
const data = await response.json();
console.log(data);
}catch(error){
console.log('오류',error);
}
}
Promise는 간단한 비동기 작업이나 여러 작업을 병렬로 처리할때 유용
async/await는 복잡한 비동기 작업을 동기적으로 작성하고 싶을때, 가독성을 높이고 에러 처리를 쉽게 하기 위해 주로 사용
{
console.log(x); //ReferenceError
let x = 5;
}
호이스팅이란 변수와 함수의 선언이 최상위로 끌어올려지는 현상, 함수 선언은 호이스팅이 이루어 지지만 변수 호이스팅은 TDZ로 인해 ReferenceError오류가 나타난다. (var의 경우에는 undefined)
함수선언형은 function키워드를 사용하여 함수를 선언, 코드가 실행되기전에 호이스팅이 된다.(함수 정의 전 호출 가능)함수표현식은 함수를 변수에 할당하는 방식, 함수는 익명함수일 수 있고 이름이 있을 수 있다. 함수 표현식은 호이스팅이 되지 않으므로 함수가 정의 된 이후에 호출 가능function 함수선언(){
console.log('Hello');
}
const 함수표현 = function(){
console.log('Hello');
}
// 익명함수 callback으로 사용
setTimeout(function(){
console.log('Hello');
},1000)
//익명함수 즉시 실행
(function(){
console.log('즉시 실행');
})();
익명함수는 이름이 없는 함수. 다른 함수에 인수로 전달하거나 즉시 실행하는데 사용
주로 callback으로 사용되거나 특정 작업을 수행하기 위해 즉시 실행
평소 헷갈렸던 속성에 대한 정의나 Promise개념에 대해 다시한번 복습을 하게 되어 이제는 더이상 헷갈리지 않을거 같고 async/awiat를 스터디 하면서 써봐야겠다.