TIL 2021-05-07 (ES6 의 문법)

nyongho·2021년 5월 7일
0

오늘 배운 내용

목록 보기
8/40
post-thumbnail

TIL


What I Learn?

1) ES6 를 지원하지 않는 브라우저 대처 방안

Babel 을 사용하면 된다.

1-1. Babel 이란 무엇인가?

Babel 은 ES6 이상의 문법을 브라우저가 이해할 수 있게끔 ES5 문법으로 변환해준다.

1-2. Babel 은 컴파일러인가 트랜스파일러인가?

컴파일은 한 언어로 작성 된 코드를 다른 언어로 바꿔주는 것을 의미하고

(C => 어셈블리어)

트랜스파일은 한 언어로 작성 된 코드를 비슷한 수준의 추상화를 가진 다른 언어로 변환하는 것을 의미한다.

(C++ => C, ES6 => ES5)

따라서 Babel 은 트랜스파일러 이다.


2) ES6 에 새롭게 추가 된 스펙에 대해

  1. Let, Const

  2. 화살표 함수 (Arrow Function)

  3. 클래스

  4. 프로미스 (Asynchronous)

  5. 스프레드 연산자 (여러가지 인수를 받을 수 있음)

  6. map, set 메소드

  7. includes 메소드

  8. 객체 비구조화 (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

3) var, let, const 의 차이점

ES5 의 var 는 함수 레벨 스코프를 지원한다.

ES6 의 let, const 는 블록 레벨 스코프를 지원한다.

var 와 let 은 재선언이 가능하지만 const 는 불가능하다.

{let abc = 1;}

// 불가

{var abcd = 1;}

// 가능

4) 자바스크립트의 Prototype 으로 Class 를 구현할 수 있는가

결론부터 말하자면 가능하다.

전에도 언급했듯이 자바스크립트는 타 언어에 없는 Class 대신 Prototype 이 존재해 상속을 구현할 수 있다.

profile
두 줄 소개

0개의 댓글