# Javascript arrow function expression

# Javascript arrow function expression

by jihoon kim

HTML

<h1>Javascript arrow function expression</h1>

<pre id="contents">
■ 애로우_펑션 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/%EC%95%A0%EB%A1%9C%EC%9A%B0_%ED%8E%91%EC%85%98

# 화살표 함수 표현(arrow function expression)
    function 표현에 비해 구문이 짧고
    자신의 this, arguments, super 또는 new.target을 바인딩 하지 않습니다.
    화살표 함수는 항상 익명입니다. 
    이  함수 표현은 메소드 함수가 아닌 곳에 가장 적당합니다.
    그래서 생성자로서 사용할 수 없습니다.

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

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

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

■ 고급문법
    // 객체 리터럴 식을 반환하는 본문(body)을 괄호 속에 넣음:
    params => ({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

==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== 
// 객체 리터럴 식을 반환하는 본문(body)을 괄호 속에 넣음:
params => ({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
</pre>

<script>
function autolink(id) {
  var container = document.getElementById(id);
  var doc = container.innerHTML;
  var regURL = new RegExp("(http|https|ftp|telnet|news|irc)://([-/.a-zA-Z0-9_~#%$?&=:200-377()]+)","gi");
  var regEmail = new RegExp("([xA1-xFEa-z0-9_-]+@[xA1-xFEa-z0-9-]+\.[a-z0-9-]+)","gi");
  return doc.replace(regURL,"<a href='$1://$2' target='_blank'>$1://$2</a>").replace(regEmail,"<a href='mailto:$1'>$1</a>");
}

window.onload = function () {
  var container = document.getElementById("contents");
	container.innerHTML =...