์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ์ฝ๋๋ธ๋ญ
- branch ์ญ์
- ์ฝ๋๋ธ๋ก
- Git๋ช ๋ น์ด
- branch ์์ฑ
- ๋งํฌ๋ค์ด
- markdown
- branch ํ์ธ
- ๋ธ๋์น ํ์ธ
- ๋ธ๋์น ์์ฑ
- ![rejected]
- ๋ธ๋์น ์ญ์
Archives
- Today
- Total
DevLog
๊ณ ์ฐจํจ์(์ฝ๋ฐฑํจ์) ์ ๋ฆฌ ๋ณธ๋ฌธ
๐ง๐ป๐ป ๊ฐ๋ฐ๊ฐ๋ฐ/javascript
๊ณ ์ฐจํจ์(์ฝ๋ฐฑํจ์) ์ ๋ฆฌ
Seungjae Lee 2021. 6. 3. 22:19ํน๋ณํ ๋์ฐ๋ฅผ ๋ฐ๋ 1๊ธ ๊ฐ์ฒด javascript ํจ์์ ํน์ง
- ๋ณ์์ ํ ๋น(assignment) ํ ์ ์๋ค.
- ๋ค๋ฅธ ํจ์์ ์ธ์(argument)๋ก ์ ๋ฌ๋ ์ ์๋ค.
- ๋ค๋ฅธ ํจ์์ ๊ฒฐ๊ณผ๋ก์ ๋ฆฌํด๋ ์ ์๋ค.
//๋ณ์์ ํจ์๋ฅผ ํ ๋นํ๋ ๊ฒฝ์ฐ
/*
* ์๋๋ ๋ณ์ square์ ํจ์๋ฅผ ํ ๋นํ๋ ํจ์ ํํ์์
๋๋ค.
* ์๋ฐ์คํฌ๋ฆฝํธ์์ ํจ์๋ ์ผ๊ธ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ ๋ณ์์ ์ ์ฅํ ์ ์์ต๋๋ค.
*
* ํจ์ ํํ์์ ํ ๋น ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
* square(7); // --> ReferenceError: Can't find variable: square
*/
const square = function (num) {
return num * num;
};
// square์๋ ํจ์๊ฐ ์ ์ฅ๋์ด ์์ผ๋ฏ๋ก (์ผ๊ธ ๊ฐ์ฒด), ํจ์ ํธ์ถ ์ฐ์ฐ์ '()'๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
output = square(7);
console.log(output); // --> 49โ
//๋ค๋ฅธ ํจ์๋ฅผ ์ธ์๋ก ๋ฐ๋ ๊ฒฝ์ฐ
function double(num) {
return num * 2;
}
function doubleNum(func, num) {
return func(num);
}
/*
* ํจ์ doubleNum์ ๋ค๋ฅธ ํจ์๋ฅผ ์ธ์๋ก ๋ฐ๋ ๊ณ ์ฐจ ํจ์์
๋๋ค.
* ํจ์ doubleNum์ ์ฒซ ๋ฒ์งธ ์ธ์ func์ ํจ์๊ฐ ๋ค์ด์ฌ ๊ฒฝ์ฐ
* ํจ์ func๋ ํจ์ doubleNum์ ์ฝ๋ฐฑ ํจ์์
๋๋ค.
* ์๋์ ๊ฐ์ ๊ฒฝ์ฐ, ํจ์ double์ ํจ์ doubleNum์ ์ฝ๋ฐฑ ํจ์์
๋๋ค.
*/
let output = doubleNum(double, 4);
console.log(output); // -> 8
//ํจ์๋ฅผ ๋ฆฌํดํ๋ ๊ฒฝ์ฐ
function adder(added) {
return function (num) {
return num + added;
};
}
/*
* ํจ์ adder๋ ๋ค๋ฅธ ํจ์๋ฅผ ๋ฆฌํดํ๋ ๊ณ ์ฐจ ํจ์์
๋๋ค.
* adder๋ ์ธ์ ํ ๊ฐ๋ฅผ ์
๋ ฅ๋ฐ์์ ํจ์(์ต๋ช
ํจ์)๋ฅผ ๋ฆฌํดํฉ๋๋ค.
* ๋ฆฌํด๋๋ ์ต๋ช
ํจ์๋ ์ธ์ ํ ๊ฐ๋ฅผ ๋ฐ์์ added์ ๋ํ ๊ฐ์ ๋ฆฌํดํฉ๋๋ค.
*/
// adder(5)๋ ํจ์์ด๋ฏ๋ก ํจ์ ํธ์ถ ์ฐ์ฐ์ '()'๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
let output = adder(5)(3); // -> 8
console.log(output); // -> 8
// adder๊ฐ ๋ฆฌํดํ๋ ํจ์๋ฅผ ๋ณ์์ ์ ์ฅํ ์ ์์ต๋๋ค.
// javascript์์ ํจ์๋ ์ผ๊ธ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
const add3 = adder(3);
output = add3(2);
console.log(output); // -> 5
//ํจ์๋ฅผ ์ธ์๋ก ๋ฐ๊ณ , ํจ์๋ฅผ ๋ฆฌํดํ๋ ๊ฒฝ์ฐ
function double(num) {
return num * 2;
}
function doubleAdder(added, func) {
const doubled = func(added);
return function (num) {
return num + doubled;
};
}
/*
* ํจ์ doubleAdder๋ ๊ณ ์ฐจ ํจ์์
๋๋ค.
* ํจ์ doubleAdder์ ์ธ์ func๋ ํจ์ doubleAdder์ ์ฝ๋ฐฑ ํจ์์
๋๋ค.
* ํจ์ double์ ํจ์ doubleAdder์ ์ฝ๋ฐฑ์ผ๋ก ์ ๋ฌ๋์์ต๋๋ค.
*/
// doubleAdder(5, double)๋ ํจ์์ด๋ฏ๋ก ํจ์ ํธ์ถ ๊ธฐํธ '()'๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
doubleAdder(5, double)(3); // -> 13
// doubleAdder๊ฐ ๋ฆฌํดํ๋ ํจ์๋ฅผ ๋ณ์์ ์ ์ฅํ ์ ์์ต๋๋ค. (์ผ๊ธ ๊ฐ์ฒด)
const addTwice3 = doubleAdder(3, double);
addTwice3(2); // --> 8
'๐ง๐ปโ๐ป ๊ฐ๋ฐ๊ฐ๋ฐ > javascript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ฐ์ฒด์ ํค๊ฐ ์๋์ง ํ์ธ (0) | 2021.06.05 |
---|---|
๊ณ ์ฐจํจ์ ๋ฉ์๋ ์ ๋ฆฌ(map, filter, reduce) (0) | 2021.06.03 |
[].join() ๋ฉ์๋ (0) | 2021.06.03 |
str.split('')๊ณผ str.split(' ')์ ์ฐจ์ด (0) | 2021.06.03 |
immutable (๋ถ๋ณ์ฑ) ๋ฉ์๋ : slice() (0) | 2021.06.03 |
Comments