Babel 을 사용하면 된다.
Babel 은 ES6 이상의 문법을 브라우저가 이해할 수 있게끔 ES5 문법으로 변환해준다.
컴파일은 한 언어로 작성 된 코드를 다른 언어로 바꿔주는 것을 의미하고
(C => 어셈블리어)
트랜스파일은 한 언어로 작성 된 코드를 비슷한 수준의 추상화를 가진 다른 언어로 변환하는 것을 의미한다.
(C++ => C, ES6 => ES5)
따라서 Babel 은 트랜스파일러 이다.
Let, Const
화살표 함수 (Arrow Function)
클래스
프로미스 (Asynchronous)
스프레드 연산자 (여러가지 인수를 받을 수 있음)
map, set 메소드
includes 메소드
객체 비구조화 (Object Destructuring)
// 객체 비구조화 예시
const obj = {
name: "Yongho",
sex: "Male",
country: "South Korea",
}
// ES5
console.log(obj.name) // Yongho
console.log(obj.country) // South Korea
// ES6
const { name, sex, country } = obj
console.log(obj.name) // Yongho
console.log(obj.country) // South Korea
ES5 의 var 는 함수 레벨 스코프를 지원한다.
ES6 의 let, const 는 블록 레벨 스코프를 지원한다.
var 와 let 은 재선언이 가능하지만 const 는 불가능하다.
{let abc = 1;}
// 불가
{var abcd = 1;}
// 가능
결론부터 말하자면 가능하다.
전에도 언급했듯이 자바스크립트는 타 언어에 없는 Class 대신 Prototype 이 존재해 상속을 구현할 수 있다.