이번에 새로운 프로젝트를 하면서 객체의 형태로 변수를 저장하면서 Js에서 데이터를 다룰 때

많이 사용된다는 것을 알게 되었다.

 

 

객체란..?

 객체란 데이터 저장형식의 일종이다.

 객체는 {key : value} 와 같은 형태로 저장이 된다. Java와 C++의 Map과 같은 형식이다.

 

 

사용법

var ob = {1:"red"}

ob[1] == "red"

 {key : value}의 형태로 사용되며, 호출할 때는 2차원 배열을 호출 하듯이 호출하면 key값에 해당하는

 value 값이 반환된다.

 

 객체는 여러가지 key value 조합을 한 번에 쓸 수도 있는데,

var ob = { 
		1 : {"color" : "red", "name" : "apple"} 
      		2 : {"color" : "yellow", "name" : "banana"}
         }
         

// ob[1]["color"] == "red"
// ob[2]["name"] == "banana"

 위와 같이 객체 내부에 객체를 선언 함으로써 다양한 데이터를 필요에 따라 호출할 수 있다.

 

 

 

코딩을 공부하고 있는 학생입니다.

공부한 것을 정리, 공유하기 위해 블로그를 운영하고 있습니다.

포스팅에 틀린 부분이 있다면 과감한 지적, 수정의 한 마디 부탁드립니다! 감사합니다 :)

github.com/holicAZ

 

holicAZ - Overview

holicAZ has 12 repositories available. Follow their code on GitHub.

github.com

 

'Web > JavaScript' 카테고리의 다른 글

async & await  (0) 2020.12.28

async & await

 

- 자바스크립트의 비동기 처리 패턴 중 가장 최근에 나온 문법입니다.

 

- 다른 비동기 처리로는 callback, promise, setTimeout 이 있습니다.

 

 

 

 

JavaScript의 동작 방식

 

- JavaScript(줄여서 JS)는 비동기적 성질을 가지고 있습니다. 즉, 선행되는 코드의 연산이 다 끝나지 않더라도

  기다리지 않고 다음 코드를 실행합니다.

 

 - 위와 같은 성질 때문에 변수에 담긴 값이 undefinded 가 되는 오류가 종종 발생합니다.

 

 

 

 

async & await의 사용과 동작 방식

 

function resolveAfter2Seconds() {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('resolved');
    }, 2000);
  });
}

async function asyncCall() {
  console.log('calling');
  const result = await resolveAfter2Seconds();
  console.log(result);
  // expected output: "resolved"
}

asyncCall();

(위 코드는 MDN Web Docs에서 발췌한 것입니다.developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/async_function)

 

비동기적 처리의 동작을 확인하기 위해 setTimeout 즉 시간적 딜레이를 넣어줬습니다.

 

 

asyncCall() 함수 앞에 async를 기입하고,

그 아래 await을 적용할 resolveAfter2Seconds() 함수 앞에 await을 선언해 줬습니다.

 

 

함수의 동작 결과는 

(1) 'calling' 출력, 2초 후 'resolved' 출력이다.

 

만약 await이 없다고 한다면 동작 결과는

(2) 'calling' 출력, [object Promise] 출력이다. 즉 두 번째 값은 오류 값이다.

 

 

(1)과 (2)의 결과 값이 다르게 나오는 이유는 (1)은 await의 선언으로  resolveAfter2Seconds() 함수가

실행 완료될 때까지 기다린 후 다음 코드를 실행하기 때문입니다.

 

그에 반해 (2)는 resolveAfter2Seconds() 함수에서 2초의 딜레이를 기다리지 않고 바로 다음 코드를 

실행하기 때문에 두 번째 값이 오류 값이 출력되는 것입니다.

 

 

 ※ 쉽게 요약하면 JS는 코드의 연산을 기다리지 않고 다음 코드를 실행하려는 성격을 가지지만,

async & await 비동기 처리를 만나면 단어 뜻 그대로 잠깐 wait(기다림) 후 다음 코드를 실행합니다.  

 

 

 

코딩을 공부하고 있는 학생입니다.

공부한 것을 정리, 공유하기 위해 블로그를 운영하고 있습니다.

포스팅에 틀린 부분이 있다면 과감한 지적, 수정의 한 마디 부탁드립니다! 감사합니다 :)

github.com/holicAZ

 

holicAZ - Overview

holicAZ has 9 repositories available. Follow their code on GitHub.

github.com

 

'Web > JavaScript' 카테고리의 다른 글

객체(Object)  (0) 2021.01.30