ES란?

ECMAScrip의 약어를 뜻하며 자바스크립트의 표준, 규격을 나타내는 용어입니다.

ES5, ES6 처럼 뒤에오는 숫자는 버전을 뜻한다. ES5(2009년), ES6(2015년) 출시하였다.

ES6의 추가문법

1. const, let 추가

먼저 var키워드의 단점을 알아보겠습니다.

  1. 암묵적 결합 : 모든 코드가 전역 변수를 참조하고 변경 할 수 있도록 허용하는것, 변수의 유효 범위가 컺질수록 코드의 가독성이 나빠지고 의도치 않게 상태가 변경될 수 있는 가능성이 높아짐.
var x = 'global'; // 전역 변수

function foo () {
	console.log(x); // 지역 변수 x의 호이스팅으로 인해 undefined 출력
	var x = 'local'; // 지역 변수
}

foo();
console.log(x); // global 출력
  1. 생략 가능 : var키워드를 생략한 변수는 항상 전역변수가 되고, 실행되기 전에는 접근이 불가하다.
function foo() {
  x = 10;
  var y = 20;
}

foo();

console.log(x);  // 10

위와 같은 상황일때 변수 x는 var 전역 변수가 되고 foo함수를 호출하기 전까지 x라는 변수는 존재하지 않는 변수이다.

  1. 변수 호이스팅
  2. 함수 레벨 스코프

const, let, var의 차이점