var,let,const
var-스코프무시 func{} 못빠져나감
let,const-블록스코프 {}
const-한번선언하면 다른거로 값 못바꿈
let-값 바꾸기 가능
템플릿문자열
var won = 1000;
const result = `이 과자는 ${won}원 입니다.`
태그드템플릿 리터럴
function a() {}
a();
a``;
화살표함수
생략이 많아짐- 바로리턴시 생략가능
객체리턴할때는 {} 써야한다(헷갈리지 않게 주의)
부모의 this를 물려받음
e가 뭔가요.. 원래들어있는거
구조분해할당
객체값 쉽게 꺼내오는 방법
배열도 적용 가능
함수에 this 쓰고 있는 경우 사용하면 안됨
클래스
생성자,스태틱,인스턴스 메서드 하나로 합친 것
프로미스
내용이 실행은 되었지만 결과를 아직 반환하지 않은 객체
allSettled
async, await
await - then 역할
async 함수는 promise를 반환하기 때문에
함수에서 리턴한 것들은 then으로 받아야 함
Map Set
const m = new Map();
m.set('a','b')
m.get('a')
m.size();
m.forEach(() => )
m.has();
Map 키 값이 객체여도 됨
하지만 객체를 불러올려면 변수로 저장해서 같은 참조값을 같게 해야함.
Set: 중복을 허용하지 않는 배열
자료형이 다르면 된다. ex) [1,'1']
const s = new Set();
s.add(1)
s.add(1)
s.add(2)
배열중복제거
const arr = [1,2,3,2,3,5,2];
const s2 = new Set(arr)
Array.from(s2)
WeakMap WeakSet
가비지 컬렉팅이 된다
const wm = new WeakMap();
let obj3 = {}
wm.set(obj3,'123')
obj3 = null
let obj4 = {};
m.set(obj4,'123')
obj4 = null
const user = { name: 'zero', age: 29 };
user.married = false;
const userObj = {
user,
married: false
}
wm.set(user, { married: false })
user = null; //가비지 컬렉팅
널병합과 옵셔널체이닝
let count = 0;
count || <div>123</div>
??
널병합 연산자: 앞의 값이 null, undefined일 때만 뒤로 넘어감
옵셔널체이닝연산자
null, undefined여도 에러가 나지 않는다
?.
c?.[0]
댓글