cbw1030
기록하는 공간
cbw1030
전체 방문자
오늘
어제
  • 전체보기 (101)
    • Programming (99)
      • Java (19)
      • Servlet (10)
      • Spring Framework (13)
      • Javascript (22)
      • AWS (2)
      • 네트워크 (8)
      • 데이터베이스 (13)
      • 리눅스 (3)
      • 블록체인 (7)
      • 용어 정리 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 생활코딩
  • 크롤링
  • 머신러닝
  • 차원축소
  • 삼성SDS 브라이틱스
  • 인공지능
  • Brightics AI
  • Brightics Studio
  • 브라이틱스 스튜디오 사용법
  • javascript
  • Brightics
  • 브라이틱스 튜토리얼
  • 브라이틱스 스튜디오
  • react
  • 브라이틱스
  • 삼성SDS
  • beautifulsoup
  • 데이터 사이언스
  • 데이터분석
  • web

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
cbw1030

기록하는 공간

Programming/Javascript

[Javascript] ES6 화살표(에로우) 함수

2019. 3. 27. 19:55
반응형

1. ES6에서는 화살표 기호를 사용하여 화살표 함수를 만들 수 있다.

화살표 함수를 사용하는 방법에는 몇 가지 제약이 따른다.  

// 1) 매개변수가 없는 경우
const area = () => { return 100; };

// 2) 매개변수가 한 개인 경우, 이 때는 () 괄호를 생략할 수 있다.
const area = width => { return width; };
const area = (width) => { return width; };

// 3) 매개변수가 두 개 이상인 경우. 이 때는 () 괄호를 생략할 수 없다.
const area = (width, height) => { return width * height ;};

// 4) 함수 몸체가 한 줄의 구문이라면 {}를 생략할 수 있으며 암묵적으로 return이 적용된다.
const area = (width, height) => { return width * height; }; 
const area = (width, height) => width * height;

// 5) 함수 몸체가 여러 줄의 구문이라면 {}, return을 생략할 수 없다.
const area = (width, height) => {
  const result = width * height;
  return result;
};

// 6) 객체를 반환할 때는 소괄호를 사용한다.
const area = () => { return { width: 100, heigth: 200 }; };
const area = () => ( { width: 100, height: 200 } );

2. 화살표 함수는 익명 함수로만 생성 가능하다.

// ES5
var area = function (width, height) { return width * height; };

// ES6
const area = (width, height) => width * height;

// 만약 콜백 함수로 사용할 경우 이전보다 간결하게 표현할 수 있다.
var arr = [1, 2, 3];

// ES5
var pow = arr.map(function(x) { return x * x });

// ES6
const pow = arr.map(x => x * x);

3. 화살표 함수는 자신만의 this를 생성하지 않고 자신을 포함하고 있는 상위 context로부터 this를 상속 받는다.

이를 Lexical this라고 한다.

function Greeting(greet) {
  this.greet = greet;
}

Greeting.prototype.name = function (arr) {
  return arr.map(x => {
    console.log(this);
    return `${this.greet} ${x}`
  });
};

const greet = new Greeting('Hi');
const arr = ['Lee', 'Kim'];
console.log(greet.name(arr)); 

4. 화살표 함수의 스코프에는 arguments가 들어있지 않다.

const myFun = () => {
  console.log(arguments);
}

myFun(1, 2, 3, 4) // Uncaught ReferenceError : arguments is not defined 

하지만 rest parameter을 이용하면 arguments가 아닌 진짜 배열을 이용할 수도 있다.

const myFun = (...args) => {
  console.log(args)
}

myFunc(1, 2, 3, 4) // [1, 2, 3, 4] (유사배열이 아닌 진짜 배열) 

 

 

p.s. 네이버 블로그 기발자님의 화살표함수 포스팅과 유튜버 코드님의 동영상을 참고했습니다.

티스토리가 업데이트를 해서 그런지 코드블록에 색상이 안들어가네요.

반응형
저작자표시 (새창열림)

'Programming > Javascript' 카테고리의 다른 글

[JavaScript] select box에 동적으로 option을 추가해보자  (0) 2020.12.05
[Javascript] Window, DOM, BOM이란?  (0) 2019.06.21
[Javascript] Implementing in memoization(fibonacci, recursion)  (0) 2019.03.08
[Javascript] JSON.parse(), JSON.stringify()에 대해 알아보자  (0) 2019.03.05
[Javascript] ES6 템플릿 리터럴  (0) 2019.03.03
    'Programming/Javascript' 카테고리의 다른 글
    • [JavaScript] select box에 동적으로 option을 추가해보자
    • [Javascript] Window, DOM, BOM이란?
    • [Javascript] Implementing in memoization(fibonacci, recursion)
    • [Javascript] JSON.parse(), JSON.stringify()에 대해 알아보자
    cbw1030
    cbw1030

    티스토리툴바