関数関数[JavaScript]
function
(e.x. printAllMessages, getLargestWord, getOddNum)
// function의 형식은 다음과 같다.
function functionName (prameter) {
// function body
return something;
// function은 어떤값을 return해주지 않으면 'undefined'를 리턴한다.
// 왜나하면 function은 어떤값을 입력받아 출력하는 object이기 때문이다.
}
赤い箱の中で、関数に戻らないので、aとbは付けません.関数の表示
関数宣言式:関数宣言式は昇格できます.すなわち、関数宣言式は、宣言された位置の前に呼び出される.
≪関数式|Function Expression|oem_src≫:呼び出し時に関数式が生成されます.次の関数の使用では、「1.「functionは変数として割り当てることができる」の項を参照してください.
関数の使用
const printHello = function () {
console.log('Hello');
}
printHello() // 이런 방식으로 함수 호출이 가능하다. 이 때 함수가 실행이 된다. hoisting이 되지 않음.
// 다른 변수에 할당을 하여 다시 호출을 할 수도 있다.
const printAgain = printHello;
printAgain();
// 2. function은 return값으로도 할당이 가능하다.
// 점수에 등급을 매기고, 특정 조건에 맞을 시 +,- 기호를 붙이는 함수를 만들어 보자.
// function은 한가지 기능만을 갖는 것이 좋기 때문에 2개의 function을 만든다.
// 일의 자리가 3점이하 일때는 -를 붙이고, 8이상은 +가 붙는다.
function getSign(score) {
const unitDigit = score % 10;
if ( unitDigit <= 3) {
unitDigit = '-';
} else if (unitDigit >= 8) {
unitDigit = '+';
} else {
unitDigit = '';
}
return unitDigit;
}
// 점수에 A,B,C..등의 등급을 매겨보자.
// 60점 미만인 경우 +,-등의 사인은 붙지 않는다고 하자.
function getGrade(score) {
let grade;
if (score > 100 || score < 0) {
return 'INVAILED SCORE';
}
if(score === 100) {
return 'A+';
}
if (score >= 90) {
grade = 'A';
} else if (score >=80) {
grade = 'B';
} else if (score >= 70) {
grade = 'C';
} else if (score >= 60) {
grade = 'D';
} else if (score < 60) {
grade = 'F';
}
if (grade !== 'F') {
grade = grade + getSign(score);
}
return grade;
}
Arrow function
無名のanonymous関数を使用する場合のみ使用します!
(名前付き関数をnamedfunctionと呼びます.)
const printLoveyou = function() {
console.log('Love you');
};
// 위에 것을 arrow function을 이용하여 줄인다면
const printLoveyou = () => console.log('Love you');
// 다른 예를 들어 보자면 아래와 같다.
const sum = function(a,b) {
return a + b;
}
const sum = (a , b) => a + b;
-Arrow関数を使用してエンクロージャを表示
// 예사 1
const sum = function(x) {
return function(y) {
return x + y;
}
}
// 위의 클로저 함수를 에로우 함수를 이용해 표현해 보자.
// x와 y를 감싸고 있는 ()는 생략이 가능하다.
const sum = (x) => (y) => x + y;
sum(5)(20); // 25
// 예시 2
const htmlMaker = function(tag) {
return function(textContent) {
return `<${tag}>${textContent}</${tag}>`;
}
}
const htmlMaker = tag => textContent => `<${tag}>${textContent}</${tag}>`;
htmlMaker('div')('즐거운 코딩 공부') // <div>즐거운 코딩 공부</div>
const liMaker = htmlMaker('li');
liMaker('첫번째 아이템') // <li>첫번째 아이템</li>
liMaker('두번째 아이템') // <li>두번째 아이템</li>
IIFE
(function hello() {
console.log('hello')
})();
※参考1.コデスタッツコーン
2.YouTube Elly5.Arrow関数は何ですか。
Reference
この問題について(関数関数[JavaScript]), 我々は、より多くの情報をここで見つけました https://velog.io/@loocia1910/함수-function-JavaScriptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol