«

ECMAScript 2016 추가된 사항

서론

ECMAScript2016에서 크게 변화된 부분은 없어 보입니다. 추가된 사항을 살펴보겠습니다.

설명

includes메서드가 추가되었는데 배열안에 특정값을 찾는 메서드인데 해당 값이 존재할 경우 true값을 반환해 줍니다.

//syntax
array.includes(searchElement[, fromIndex])

const arr = [1,2,3];

console.log(arr.includes(4)); //false

console.log(arr.includes(3)); //true

console.log(arr.includes(3, 0)); //true

console.log(arr.includes(3, 3)); //false

console.log([1,2,undefined].includes(undefined)); //true

위와 같은 형태로 동작하는데 재밌는 점은 두번째로 오는 값은 0보다 작으면 일치하지 않는 값이라고 해도 결과값에 영향이 없었습니다. 그럼 includes를 es6로 구현을 해보겠습니다.

const arr = [1,2,3];
let status;

const res = () => {
    arr.map(v => {
        if(v === 3) status = true;
    });
    return status;
};

console.log(res()); //true

map을 이용해 봤는데 생각만큼 깔끔하게 나오지가 않네요 배열의 index를 이용하지 않고 값으로 접근하려고 하니 외부에 변수를 생성하지 않고는 쉽지가 않네요 findIndex메서드로 다시 해보겠습니다.

const arr = [1,2,3];

const res = () => {
    const Index = arr.findIndex(v => v === 3);
    if(Index !== -1) return true;
    return false;
};

console.log(res());  //true

배열에 있는 1,2,3을 제외한 값을 넣을 경우 false값을 반환하게 됩니다. findIndex요소를 사용하면 외부에 변수를 만들지 않고도 includes 메서드의 기능이 구현이 가능합니다. 하지만 특수한 상황이 아니라면 includes메서드로 사용하면 됩니다.