05-3. Arrow function

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜(Arrow function)

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ES6๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค. function ํ‚ค์›Œ๋“œ ์‚ฌ์šฉํ•ด์„œ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“  ๊ฒƒ๋ณด๋‹ค ๊ฐ„๋‹จํžˆ ํ•จ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ํ•ญ์ƒ ์ต๋ช…์ž…๋‹ˆ๋‹ค.

1. ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์˜ ๊ธฐ๋ณธ๋ฌธ๋ฒ•

// ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ
const foo = () => console.log('bar');
foo(); // bar

// ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ํ•˜๋‚˜์ธ ๊ฒฝ์šฐ (๊ฐ€๋กœ๊ฐ€ ํ•„์š” ์—†๋‹ค.)
const foo = x => x;
foo('bar'); // bar

// ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—ฌ๋ ค๊ฐœ์ธ ๊ฒฝ์šฐ (๊ฐ€๋กœ๊ฐ€ ํ•„์š” ํ•ฉ๋‹ˆ๋‹ค.)
const foo = (a, b) => a + b; // ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•œ์ค„๋กœ ํ‘œํ˜„ํ•  ๋• "{}" ์—†์œผ๋ฉด ๊ฐ’์ด ๋ฐ˜ํ™˜(retuen)๋ฉ๋‹ˆ๋‹ค.!!
foo(1, 2); // 3

const foo = (a, b) => { return a + b }; 
foo(1, 2); // 3

const foo = (a, b) => { a + b }; // "{}"๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ return์ด ์—†์„ ๋•Œ 
foo(1, 2); // undefined

const foo = (a, b, c = 0) => { // ์—ฌ๋Ÿฌ์ค„ ์ผ์„ ๊ฒฝ์šฐ 
	return a + b + c;
}
foo(1, 2, 3) // 6

// ์ฆ‰์‹œ์‹คํ–‰ํ•จ์ˆ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
(() => {
  console.log('foo');
})(); // foo

/*
1) "{}"์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์—ฌ๋Ÿฌ์ค„์„ ์ผ์„ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
2) "{}"๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•  ๋•Œ return์„ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
3) ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•œ์ค„๋กœ ํ‘œํ˜„ํ•  ๋• "{}" ์—†์œผ๋ฉด ๊ฐ’์ด ๋ฐ˜ํ™˜(retuen)๋ฉ๋‹ˆ๋‹ค.!!
4) "{}"๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด undefied๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
*/

// ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜(return)ํ•  ๋•Œ
const foo = () => ( { a: 1, b: 2, c: 3 } );
foo(); // { a: 1, b: 2, c: 3 };

2. ์ฝœ๋ฐฑ ํ•จ์ˆ˜์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ

// ES5
var numbers = [1, 4, 9];
var oddArr = numbers.filter(function (x) { return x % 2 !== 0;});
console.log(oddArr); // [1, 9]
// ES6
var numbers = [1, 4, 9];
var oddArr = numbers.filter( x => (x % 2) !== 0 );
console.log(oddArr); // [1, 9]

Last updated

Was this helpful?