호다닥

Day14. ES6 본문

바닐라코딩

Day14. ES6

3jun 2018. 6. 21. 21:56

< ES2015 > "ES6"

ES5 - EcmaScript5

ES6는 모든 기능이 브라우저에서 작동하는 건 아니다. 때문에 브라우저에서 구동하기 위해서는 ES5를 사용하는 것이 안전하다. 

ES6로 개발한 다음, ES5로 변환하는 방식으로 개발하기도 한다. 

 

ES dicuss


ES6, 새로운 문법


let은 var와 다르다. 

let으로 변수 선언한 것은 block scope안에 갇히게 된다. 

let으로 변수 선언하면 if문 안에서만 사용할 수 있고, 외부에서 사용할 수 없다. 


let은 스코프 내에서 매번 생성되는 것이기 때문에 



또 한가지 변수 선언하는 const가 있다. 

constatnt: 상수 - 변하지 않는 수이 때문에 const를 사용하여 선언한 것은 값을 재할당할 수 없다.

const 또한 let과 마찬가지로 block scope이다. 


const로 선언한 변수를 재할당하는 것은 안되지만

배열을 직접 수정하는 것은 가눙하다. 


shallow copy

deep copy



rest parameter

나머지 인자들을 다 배열로 묶어버린다. 


이 상황에서 ...c에는 'c','d','e','f'가 담겨 있고, c는 실제로 배열이기 때문에 Array.isArray(c)를 하면 True값이 나온다. 


arguments는 유사배열이기 때문에 Array.isArray하면 False 값이 나온다. 


rest parameter는 앞 혹은 중간에 나올 수 없다.. 마지막 인자에만 사용할 수 있다. 그래야 나머지 인자들을 묶을 수 있기 때문이다. 


spread operator

배열을 발라버린다. 




destructuring


key명하고 내가 선언하는 변수명하고 일치해야만 destructuring 을 할 수 있다. 



default parameter


인자가 안주어지면 undefinde인데, 변수가 null이면 undefined가 뜬다. 



backtick을 써서 문자열을 만들면 ${ } 을 쓸 수 있다. 



Arrow function

( ) 는 인자를 받는 부분을 표시해준다. (반드시 뚱뚱한 화살표를 써야한다. =>)


함수를 다른 방식으로 쓰는 것일 뿐이다. Function expression으로 밖에 쓸 수 없다. 

소괄호 없이도 사용할 수 도 있지만, 소괄호를 생략하기 위해서는 인자가 반드시 1개여야 한다. 


한줄로 쓸때는 중괄호를 생략할 수도 있고, 중괄호를 써도 무관하다.  만약 중괄호가 생략되면 바로 return이 된다. 



Arrow function에서는 arguments를 사용할 수 없다. 

Arrow function에서는 this가 없다. 그렇기 때문에 상위 스코프에서 this값을 찾기 때문에 window가 된다.

Arrow function에서는 this와 arguments를 사용할 수 없다. 




'바닐라코딩' 카테고리의 다른 글

Day 15. 마지막 리뷰  (0) 2018.06.23
Day 13. Review / DOM & CSSOM  (0) 2018.06.19
Day 12. Git  (0) 2018.06.16
Day 11. Event Loop  (0) 2018.06.14
Day 9,10. Server/Client/HTTP, AJAX  (0) 2018.06.14
Comments