-
currying
function sum(x) { return function (y) { return function (z) { return x + y + z; }; }; }; console.log(sum(1)(2)(3)) //6
arrow function
화살표 함수표현은 function표현에 비해 구문이 짧고 자신의 this, arguments, super 또는 new.target을 바인딩 하지 않습니다.
화살표 함수는 항상 익명입니다. 에소드 함수가 아닌 곳에 가장 적합합니다. 생성자로서 사용할 수 없습니다.
function sum(x) { return y => { return z => { return x + y + z; } } } console.log(sum(1)(2)(3)) //6
var sum = x => y => z => x + y + z; console.log(sum(1)(2)(3)) //6
backquote
'welcome to ' + str1 + str2 + '!' //"welcome to codestates!" `welcome to ${str1}${str2}!` //"welcome to codestates!"
var template = (username) => `<div> $(username} </div>` template("hello") /* "<div> hello </div>" */ //위의 arrow function을 풀어쓰면 밑에 있는 코드이다. var template = function(username) { return `<div> $(username} </div>` } template("hello") /* "<div> hello </div>" */
function 기본값을 설정한다면
var template = (username = 'hello') => `<div> $(username} </div>` template() /* "<div> hello </div>" */