화살표함수

커피스크립트에서 ->를 적당히 잘가져온것 같은데, 간혹 편리하고 간혹 문서읽을때 이게 뭐지 싶을때도 있다. 익숙해지자.

기본구문

(param1, param2, …, paramN) => { statements }
(param1, param2, …, paramN) => expression
          // 다음과 동일함:  => { return expression; }

// 매개변수가 하나뿐인 경우 괄호는 선택사항:
(singleParam) => { statements }
singleParam => { statements }

// 매개변수가 없는 함수는 괄호가 필요:
() => { statements }

// 객체 리터럴 식을 반환하는 본문(body)을 괄호 속에 넣음:
var f = params => ({foo: bar})
// 아래와 아마도 동일함:
var f = function(params){
  return({ foo: bar });
};

// 나머지 매개변수 및 기본 매개변수가 지원됨
(param1, param2, ...rest) => { statements }
(param1 = defaultValue1, param2, …, paramN = defaultValueN) => { statements }

이런것도 됨...거의 혁명

// 매개변수 목록 내 비구조화도 지원됨
var f = ([a, b] = [1, 2], {x: c} = {x: a + b}) => a + b + c;
f();  // 6
var a = [
  "Hydrogen",
  "Helium",
  "Lithium",
  "Beryl­lium"
];

var a2 = a.map(function(s){ return s.length });
var a3 = a.map( s => s.length );
console.log(a2 == a3 ? a3 : a2);

[8, 6, 7, 10]

//es5
function foo() {
  var _arguments = arguments;

  var f = function f(i) {
    return _arguments[0] + i;
  }; // foo 함수의 암시된 arguments 바인딩
  return f(2);
}

//es6
function foo() {
  let _arguments = arguments;
  let f = (i) => arguments[0]+i; // foo 함수의 암시된 arguments 바인딩
  return f(2);
}

foo(1); // 3

results matching ""

    No results matching ""