ES2016의 새로운 기능: Array.prototype.includes(), 지수 연산자 등

DaiVernon·2021년 7월 25일
0

JavaScript

목록 보기
6/10
post-thumbnail

이 글은 알베르토 몬탈레시의 모던 자바스크립트 핵심 가이드를 기반으로 작성되었습니다.

ES 2016에는 두 가지 기능이 새롭게 도입되었다.

  • Array.prototype.includes()
  • 지수 연산자(**)

Array.prototype.includes()


includes() 메서드는 배열에 특정 원소가 포함되어 있으면 true 를 반환하고 그렇지 않으면 false 를 반환한다.

let array = [1, 2, 4, 5];

array.includes(2);
// true

array.includes(3);
// false

includes()를 인덱스와 함께 사용하기


includes() 에 인덱스를 추가해서 원소를 검색할 수 있다. 기본값은 0 이지만 음수를 전달할 수도 있다.

includes() 에 전달하는 첫 번째 값은 검색할 원소이고, 두 번째 값이 검색을 시작할 인덱스이다.

let array = [1, 3, 5, 7, 9, 11];

// 인덱스 1부터 시작해서 숫자 3을 찾기
array.includes(3, 1);
// true

// 인덱스 4부터 시작해서 숫자 5를 찾기
array.includes(5, 4);
// false

// 배열 끝에서 첫 번째 인덱스부터 숫자 1을 찾기
array.includes(1, -1);
// false

// 배열 끝에서 세 번째 인덱스부터 숫자 11을 찾기
array.incudes(11, -3);
// true

array.includes(5, 4);false 를 반환했다. 배열은 실제로 인덱스 2 에 숫자 5 를 포함하고 있지만 인덱스 4 부터 찾기 시작했기 때문이다.

array.includes(1, -1); 는 인덱스 -1, 즉 배열의 마지막 원소부터 찾기 시작했기 때문에 false 를 반환했다.

array.includes(11, -3); 는 인덱스 -3, 즉 배열의 마지막 원소부터 3번째 원소인 (7)부터 찾기 시작했기 때문에 11 을 찾을 수 있었고 따라서 true 를 반환했다. 반면, 예를 들어 5 를 인덱스 -3 부터 찾는다면(array.includes(5, -3)) false 를 반환할 것이다.

지수 연산자


ES2016 이전에는 지수 계산을 위한 코드를 다음과 같이 작성했다.

Math.pow(2, 2);
// 4

Math.pow(2, 3);
// 8

이제 새로운 지수 연산자(**)를 사용하여 다음과 같이 코드를 작성할 수 있다.

2 ** 2;
// 4

2 ** 3;
// 8

지수 연산자는 다음 예제와 같이 여러 연산을 결합할 때 매우 유용하다.

2 ** 2 ** 2;
// 16

Math.pow(Math.pow(2, 2), 2);
// 16

Math.pow() 를 사용하면 함수를 계속 이어서 써야 해서 코드의 가독성이 떨어지지만, 지수 연산자를 사용하면 동일한 작업을 더 간결하게 표현할 수 있다.

profile
클린 코드, 클린 아키텍처

0개의 댓글