var, const, let
var, const 의 가장 큰 차이점:
const : ({} = 블록 스코프) 블록 스코프 존중
var: 함수 스코프(function() {}) 블록 스코프 밖에서도 호출, 가능 함수 스코프 존중
const, let 의 차이:
const 는 선언시 한번만 값을 넣을 수 있지만 객체를 넣었을때 객체 안에있는 값을 바꾸는건 가능
let 은 값을 변경 가능
프로미스
Async/await
async function findAndSaveUser(Users) {
try {
let user = await Users.findOne([]);
user.name = 'zero';
user = await User.save();
user = await User.findOne([ gender: 'm']);
} catch (e) {
console.log(e);
}
}
async 에서 return 을 하면 then 을 사용
for await (배열)
const promise1 = Promise.resolve('성공1');
const promise2 = Promise.resolve('성공2');
(async () => {
for await (promise of [promise1, promise2]) {
console.log(promise);
}
})();
Map
// 생성
const map = new Map();
// 추가
map.set('a', 'b');
map.set('c', 'd');
map.get('a');
// key를 객체로
const obj = { key: 'key'};
map.set(obj, {c: 'd'});
map.get(obj);
// loof
for (const [k, v] of map) {}
map.forEach((v, k) => {});
map.has();
map.delete();
map.clear();
map.size
WeakMap
Set
Set은 중복을 허용하지 않는다. 배열을 사용하고싶고 중복을 허용하지않을때 사용
const arr = [1, 3, 1, 7, 2, 6, 3, 5];
const set = new Set(arr);
// 1, 3, 2, 7, 6, 5
const result = Arrey.from(set);
WeakSet
널병합/ 옵셔널 체이닝
널 병합
falsy 값(0, ‘’, false, NaN, null, undefind) 일때 뒤에 값으로 넘어감
주로 || 연산자 대용을로 사용
const value = 0;
const real = value ?? 3;
console.log(real); // 3
옵셔널 체이닝
null 이나 undefind 속성을 조회하는 경우 에러가 발생하는 것을 방지
const c = null;
try {
c.d;
} catch (e) {} // error
c?.d; // 문제 없음