1. let 과 const
ES6(=ES2015) 부터 등장.
변수 선언시, var 가 아닌 let과 const 이용
: hoisting
둘리의 호이호이? 가 아닌 호이스팅
자바스크립트에서는 선언되는 변수와 함수를 소스전체에를 스캔하여 메모리에 할당 후 처리하기때문에
컴파일러 언어를 익힌 나같은 사람은 착각하기 쉬운 일이 발생한다.
console.log(A1); //오류 안난다. undefined 라고만 나올뿐...
var A1 = "hello";
var A1 = 100; // 중복선언해도 오류 안남..
이런걸 해결해주는게 let !
일반적인 언어같이 위에 것들을 막아줌..
const 는 상수 선언
2. 구조 분해 할당
let arr = [10,20,30,40];
let [a1, a2,a3] = arr; //a1=10, a2=20, a3=30 할당
let p1 = {name:"심쿵이", age: 8 , gender: "M"};
let {name:n, age: a, gender } = p1; //name 속성을 n 에 할당 즉 n="심쿵이" 나머지도 동일쓰
let {name, age , gender = p1; // 별칭을 안주고 동일한 이름으로도 가능 . 즉 let name = "심쿵이" 로 됨!
3. 화살표 함수 == 람다함수
주의점!! 화살표 함수 내의 this는 상위 객체를 가르키지 않는다!! **주의**
4. 객체 리터럴
var obj = {name: name, age: age, email: email };
var obj = {name, age, email }; //동일하다!
5. 템플릿 리터럴
const d1 = new Date();
let name = "심쿵이";
let r1 = `${name} 는 ${d1.toDateString() } 에 우리집에 있다`; //${} 으로 출력 가능 안에 계산도 가능하다!
6. 모듈
import 구문 으로 모듈 임포트
export 로 모듈 공개
7. 프로미스
Promise 로 어싱크 처리 -> 이후 나온 async, await를 현재는 더 잘씀
8. 전개 연산자(spread operator)
객체의 값을 변경시 많이 사용!
let obj1 = {name:"심쿵이", age:7};
let obj2 = {...obj1, age:8}; //age만 덮어써짐!