본문 바로가기

언어/Javascript

es6 화살표 함수 특징 3가지 + reduce함수

결론 : 이름, this, argument 가 없다!

1. 이름 -> 화살표 함수는 기명함수가 없다! 항상 익명함
수!
2. this -> 앞선 this포스팅에 적었듯이 this가 화살표 함수에서 쓰이면 부모를 가리킨다!
3. arguments -> arguments속성이 없다!
arguments는 값들을 배열 형태 담고있는데 화살표 함수 사용시 정의되지않았다고 에러를 뿜는다.

 

기능 유의 :

 

함수 본문에 return문만 존재할 경우, return 생략 가능

함수 body에 return문만 존재할 때 return을 생략하고 쓸 수 있다. 이때 중괄호({})도 생략해서 써야 정상 작동된다.

// 정상 작동
function solution(numbers) {
    return 45 - numbers.reduce( (acc,cur) => {return acc + cur} )
    }
    
// 정상 작동
function solution(numbers) {
    return 45 - numbers.reduce( (acc,cur) => acc + cur )
    }
    
    
 // 비정상 작동
 function solution(numbers) {
    return 45 - numbers.reduce( (acc,cur) => {acc + cur} )
    }

만약 초기값이 제공되지 않는다면 accumulator는 배열의 첫번째 값이 자동으로 들어가게된다.

그렇게 되면 ,1번 인덱스부터 reducer를 거친다.

 

그리고 reducer의 acc는 acc+cur값이 들어가는 게 아니라, return값이 들어간다.

대부분 예제를 return acc+cur로들어서 착각했는데 return값이 들어간다.

[0, 1, 2, 3, 4].reduce(function(accumulator, currentValue, currentIndex, array) {
    console.log(accumulator);
    return 1
}, 0); // 0 1 1 1 1

'언어 > Javascript' 카테고리의 다른 글

closure  (0) 2022.08.06
Array Destructing, Object Destructing  (0) 2022.08.04
IIFE 즉시실행함수 와닿는 특징.  (0) 2022.08.02
script type = "module"  (0) 2022.08.01
비동기 : 마이크로태스크 큐 메크로테스크 큐  (0) 2022.07.29