{ key1: value, key2: value } 의 형태로 표현하며, value에는 모든 자료형의 값을 담을 수 있습니다.
다른 언어에서는 이와 같은 자료형을 Dictionary(딕셔너리)로 부르기도 하지만 JS에서의 공식 명칭은 Object입니다.
key를 기준으로 객체에 있는 value(값)에 접근할 수 있습니다.
객체의 key에 접근하는 방법은 두가지 표현이 존재합니다.
obj.key , obj['key']
ES6에서 새롭게 도입한 문법이며 객체(Object) 나 배열(List)을 변수로 ‘분해'할 수 있습니다.
객체를 분해할 때에는 반드시 변수명과 객체의 프로퍼티 이름이 일치해야 합니다.
프로퍼티의 이름이 유효한 식별자인 프로퍼티만 분해 후 할당됩니다.
const obj = { name: "이용우", age: 28, tech: "Node.js" };
const { name, age, tech, hair } = obj;
console.log(name); // 이용우
console.log(age); // 28
console.log(tech); // Node.js
console.log(hair); // undefined: obj에는 "hair" 프로퍼티가 존재하지 않습니다.
const arr = ["Node.js", "React", "Spring"];
const [backEnd, frontEnd] = arr;
console.log(backEnd); // Node.js
console.log(frontEnd); // React
Not a Number의 줄임말이며, Number 자료형에 속하지만 중요하므로 따로 짚고 넘어갑니다!
숫자가 아닌 값을 숫자로 변환하는 경우 NaN으로 반환됩니다.
❓ 그렇다면 NaN는 어떻게 판별할까요?
NaN은 다른 모든 값과 비교했을 때 같지 않으며, 다른 NaN과도 같지 않습니다.
NaN의 판별은 Number.isNaN() 또는 isNaN()을 이용하면 제일 분명하게 판별할 수 있습니다.
isNaN()은 현재 값이 NaN이거나, 숫자로 변환했을 때 NaN이 될 경우 true를 반환합니다.
Number.isNaN()은 현재 값이 NaN이어야만 true를 반환합니다.
Array, Map과 같은 반복 가능한(Iterable) 객체의 value(요소)를 하나씩 반복할 수 있게 해줍니다.
(Object는 반복 가능한 객체에 해당하지 않습니다!)
지금은 배열을 하나씩 반복해주는 문법이라고 생각해도 괜찮습니다.
for...of 문과 유사하게 객체의 요소를 반복해주지만, 선언한 변수에 값이 직접 들어가지 않고 요소의 key를 전달합니다.
for...of 문처럼 반복 가능한(Iterable) 객체는 모두 사용할 수 있습니다.
const persons = ['강승현', '홍길동', '김아무개'];
for (const index in persons) {
const person = persons[index];
console.log(person);
}
// Print: '강승현'
// '홍길동'
// '김아무개'
배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다.
const array1= [1,4,9,16];
//map 사용
const map1 = array1.map(x=>x*2);
//함수가 적용된 결과로 새로운 배열을 반환합니다.
console.log(map1); //[2, 8, 18, 32]
주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다.
const fruits= ['사과', '귤', '배', '감', '바나나', '키위'];
//filter 사용
const result = fruits.filter(fruit => fruit.length > 2);
//함수가 적용된 결과로 새로운 배열을 반환합니다.
console.log(result); //['바나나']
특징
비동기 함수는 일반 함수나 화살표 함수와 아주 비슷하지만 딱 두가지만 다릅니다.
비동기 함수의 결과 값은 항상 Promise 객체로 resolve된다.
비동기 함수 안에서만 await 연산자를 사용할 수 있다. (바로 아래에서 배웁니다!)
이 두가지 특징을 제외하면 기존처럼 일반 함수나, 화살표 함수처럼 사용할 수 있습니다