-
ECMAScript2015 (ES6)현재/JavaScript 2021. 11. 4. 16:10
1. 개요
1) 최신 모던 자바스크립트로 간결한 문법
2) react, vue, angular에서 권고하는 스크립트 언어 형식
※ Babel
(1) ES6를 모든 browser에서 사용할 수 없음 -> 구형 browser는 작동 안함
(2) transpiling을 통해 구 버전의 browser에서 ES6 문법을 인식할 수 있게 ES5로 변환하는 compiler
2. var 문법 변화
1) const: 값을 할당할 수 없음
(1) 블록단위 변수로 범위가 제한됨
(2) 한 번 선언한 값에 대해 변경 불가 -> 상수
(3) 객체나 배열 내부는 변경이 가능
const a = 10; a = 20; // error -> 재할당 불가능
2) let: 값을 재선언할 수 없음
(1) 블록단위 변수로 범위가 제한
(2) 한 번 선언한 값에 대해서 다시 선언할 수 없음
let b = 10; let b = 30; // error b = 20; // 20으로 재할당은 가능
3. ES5는 블록 단위에 상관없이 scope가 설정됨
var sum = 0; for(var i=0; i <= 5; i++){ sum = sum+i; } console.log(sum); // 15 console.log(i); // 6 -> i가 전역변수로 설정되어 값이 출력됨!
1) ES5의 특징 중 하나는 hoisting
2) 함수 선언, 변수 선언을 해석기가 가장 상단에 있는 것처럼 인식
3) 함수 선언은 hoisting 해당하지만, 함수 표현식은 hoising은 해당 없음
4. arrow function
1) function을 => (arrow)로 대체
var sum = function(a, b){ return a + b; } var sum2 => (a, b){ return a + b; } sum(10, 20); // 30 sum2(10, 20); // 30
var arr = ["a", "b", "c"]; arr.forEach(function(value){ console.log(value); // a,b,c }); var arr2 = ["a", "b", "c"]; arr.forEach(value => console.log(value)); // a,b,c
2) callback function 문법의 간결화
5. 향상된 객체 리터럴
var dictionary = { words: 100, // ES5 lookup: function(){ console.log('find words: es5'); }, // ES6 lookup2(){ console.log('find words: es6'); } // 위의 ES5 grammar = ES6 grammar }
6. modules
1) 호출 전까지 코드 실행 및 동작 없음
2) javascript 모듈 로더 라이브러리 기능(common.js)을 js 언어 자체에서 지원
3) default export: 1개의 파일에서는 1개만 import
'현재 > JavaScript' 카테고리의 다른 글
spread operator (0) 2021.09.23 글자 수 체크 및 카운트 (0) 2021.04.01 랜덤 위치 노출 (0) 2021.03.29 setInterval, clearInterval, setTimeout (0) 2021.03.26