안녕하세요. 이번 시간에는 ES2016에서 바뀐 점에 대해 알아보겠습니다! 원래는 따로 카테고리를 하나 만들려고 했는데 ES2016은 별로 바뀐 게 없더라고요. 그래서 이번 강좌에 다 알려드릴 수 있을 것 같습니다. 정말 ES2015의 1/10도 안 되는 분량입니다. 겨우 제곱 연산자와 includes 메소드 두 개뿐입니다. 이외에는 사소한 패치라서 크게 신경쓰실 필요가 없습니다.
제곱 연산자
예전에는 제곱을 표현하려면 다음과 같이 했습니다. Math 객체를 사용했죠.
Math.pow(5, 3); // 125
이제는 제곱 연산자를 따로 사용할 수 있습니다.
5 ** 3; // 125
제곱에 대한 복합대입연산자도 추가되었습니다.
var i = 5;
i **= 3; // 125
배열.includes(찾을 요소, 시작 순서)
배열에 해당 요소가 있는 지 확인합니다.
[1, 2, 3].includes(1); // true
[1, 2, 3].includes(1, 1); // false
두 번째 인자는 찾기 시작하는 순서를 뜻합니다. 위의 예에서는 1이기 때문에 두 번째 요소부터 찾습니다. 배열은 0부터 시작하니까 1은 두 번째 요소입니다. 그런데 모양이 상당히 indexOf 메소드와 비슷합니다. 그냥 기존처럼 [1, 2, 3].indexOf(1) > -1
을 해도 같은 결과가 나오는데 굳이 왜 추가되었을까요?
[NaN].includes(NaN); // true
[NaN].indexOf(NaN) > -1; // false
NaN에 대한 처리가 다르다는 것 같습니다. indexOf는 NaN을 못 찾지만, includes는 찾을 수 있습니다.
위의 두 개가 끝입니다. 좀 당황스럽죠? 다음 강좌는 ES2017이 확정나면 진행하겠습니다! 들리는 바에 의하면 중대한 변화인 async와 await이 도입되었다고 하네요. 기대가 됩니다.