1. 문
최소 문법 단위 토큰으로 구성된 동작의 최소크기
2. 표현식
값으로 평가되는 식
3. Spread 구문
Es2015에서 새로 등장한 문법
배열을 다룰 때 유용하다.
배열의 요소들을 펼칠 때 사용
const arr = [1,2,3];
console.log(...arr);
출력결과 /// 1 2 3
Rest Parmeter 문법은 비슷하지만 작동이 다르다.
사용예)
const webPublishing = ['HTML' 'CSS'];
const interactiveWeb = [...webPublishing, (추가요소)];
.slice() 메소드를 사용하지 않고도 배열을 복사할 수 있다.
배열을 합쳐 새로운 배열을 만들 때도 좋다.
인수로도 사용할 수 있다.
* 스프레드 구문 자체가 하나의 '값'이 아니다.
* 객체에 담게 되면 인덱스가 키, 요소가 값이된다.
* 객체에서 활용할 때 프로퍼티를 ...spread를 사용해서 복사할 수 있다.
- 깊은 복사는 일어나지 않는다!
- 배열에 담거나 인수로 사용할 수 없다.
4. 모던한 프로퍼티 표기법
let a = 10;
const test = {
a // 변수자체를 키와 값으로 넣어줄 수 있다. 함수도 마찬가지!!
testFunction () { // 객체 내 메소드를 선언할 때 function 키워드와 :을 생략할 수 있다!
동작;
}
}
표현식으로 프로퍼티 네임 만들기
[표현식]
5. 옵셔널 체이닝 : 속성에 안전하게 접근하기 위해
user.cat?.name
? 왼쪽의 프로퍼티(user.cat)가 null / undefined라면 undefined를 아니라면 오른쪽 프로퍼티를 반환한다
프로퍼티마다 사용할 수 있다. >> user?.cat?.name 마지막 프로퍼티는 안됨!
6. 구조분해(Destructuring)
6-1. 배열
예문)
const rank = ['철수', '영희', '민지', '영수'];
const macbook = rank[0];
const ipad = rank[1];
const airpods = rank[2];
const coupon = rank[3];
위와 같은 코드는
const [macbook, ipad, airpods, coupon] = rank;
이렇게 할 수 있다.
* 할당되는 값이 배열이 아니거나, 값이 없으면 오류가 발생한다
변수의 개수가 배열의 길이가 같을 필요가없다.
배열이 더 길어도 넘치는 요소는 할당되지않는다.
* 마지막 변수에 ...coupon 식으로 선언하면 넘치는 요소들을 포함해서 배열로 만들 수 있다.
* 배열의 요소가 더 적으면 할당받지 못한 변수는 undefined가 된다.
* 파라미터와 마찬가지로 변수에 기본값을 설정할 수 있다.
변수의 값을 서로 교환 할때도 사용할 수 있다!
ex)
let a = 10;
let b = 20;
[a, b] = [b, a];
6-2. 객체의 구조 분해
예문)
conts macbook = {
title: '맥북 프로 16형',
price:36900000,
memory: '16GB',
storage: '1TB SSD 저장 장치',
display: '16형 Retina 디스플레이',
}
const { title, price } = macbook; // 배열과 비슷하다.
똑같은 프로퍼티 이름을 변수로 저장한다.
존재하지 않은 프로퍼티 이름을 사용하면 undefined가 할당된다. 기본값 지정 가능!
...변수이름 >> 나머지 프로퍼티를 객체로 할당받음
*변수이름과 프로퍼티이름을 다르게하기
- const { 프로퍼티네임 : 원하는변수명 ..... } = 객체;
*프로퍼티이름이 변수이름으로 활용할 수 없는 경우는 아래와 같이 변수명을 정해줘야한다!
- const { '변수-이름' : 변수명 }
* 프로퍼티네임은 [대괄호표기법]도 사용 가능하다.
7. 에러와 에러 객체
에러가 발생하면 에러객체가 생성된다.
에러 객체의 이름을 담고 있는 name
구체적인 에러 내용을 담고 있는 message라는 프로퍼티가 존재.
8. 의도적으로 에러 만들기
const error = new TypeError('타입 에러가 발생했습니다.')
error.name >>> TypeError
error.message >>> '타입 에러가 발생했습니다.'
9. 에러 발생 시키기
throw error;
10. try catch문
try{
} catch (error) {
}
try 에서 error가 발생했을때 catch 안의 코드가 실행된다.
* error 라는 파라미터? >>> error 객체
* 실행 가능한 코드에서 발생한 '예외'만 try catch가 가능하다
** 코드가 실행조차 되지않는 SyntaxError는 사용할 수 없다!
10-1. finally문
에러 발생 여부와 상관없이 항상 작동하는 코드
finally문의 예외처리를 하고 싶다면 try catch문을 중첩해서 사용해야한다.
'학습 > JS 학습' 카테고리의 다른 글
[JS]모듈 (0) | 2023.11.13 |
---|---|
[JS] 배열과 관련된 메소드 (2) | 2023.11.11 |
[JS]함수 다루기 (0) | 2023.11.10 |
[JS] 자바스크립트 작동 원리 간단요약 (0) | 2023.11.08 |
[JS]ECMAScript와 모던 자바스크립트 (0) | 2023.11.08 |