n.関数
2416 ワード
basic
// 사용예제 1
function sum(a, b) {
console.log('function');
return a + b;
}
const result = sum(1, 2);
console.log(result);
// 사용예제 2
function fullName(firstName, lastName) {
return `${firstName} ${lastName} ✋`;
}
let lastName = '김';
let firstName = '지수';
console.log(fullName(firstName, lastName));
let lastName2 = '박';
let firstName2 = '철수';
console.log(fullName(firstName2, lastName2));
memoryfunction add(a, b) {
return a + b;
}
const sum = add;
console.log(sum(1, 2));
console.log(add(1, 2));
return// return을 명시적으로 하지 않으면 자동으로 undefined이 반환됨!
function add(a, b) {
//return a + b;
return undefined;
}
const result = add(1, 2);
console.log(result);
// return을 함수 중간에 하게 되면 함수가 종료됨
// 사용예: 조건이 맞지 않는 경우 함수 도입부분에서 함수를 일찍이 종료함!
function print(num) {
if (num < 0) {
return;
}
console.log(num);
}
print(12);
print(-12);
parameters// 매개변수의 기본값은 무조건 undefined
// 매개변수의 정보는 함수 내부에서 접근이 가능한 arguments 객체에 저장됨
// 매개변수 기본값 Default Parameters a = 1, b = 1
function add(a = 1, b = 1) {
console.log(a);
console.log(b);
console.log(arguments);
console.log(arguments[1]);
return a + b;
}
add();
// Rest 매개변수 Rest Parameters
function sum(a, b, ...numbers) {
console.log(a);
console.log(b);
console.log(numbers);
}
sum(1, 2, 3, 4, 5, 6, 7, 8);
expression// 함수 선언문 function name() { }
// 함수 표현식 const name = function () { }
let add = function (a, b) {
return a + b;
};
console.log(add(1, 2));
// 화살표 함수 const name = () => { }
add = (a, b) => a + b;
console.log(add(1, 2));
// 생성자 함수 const object = new Function(); // 뒤 객체편에서 다룸
// IIFE (Immediately-Invoked Function Expressions)
(function run() {
console.log('😍');
})();
callback// 콜백함수
const add = (a, b) => a + b;
const multiply = (a, b) => a * b;
// 전달된 action은 콜백함수이다.
// 전달될 당시에 함수를 바로 호출해서 반환된 값을 전달하는 것이 아니라
// 함수를 가리키고 있는 함수의 레퍼런스(참조값)가 전달된다.
// 그래서 함수는 고차함수안에서 필요한 순간에 호출이 나중에 됨
function calculator(a, b, action) {
if (a < 0 || b < 0) {
return;
}
let result = action(a, b);
console.log(result);
return result;
}
calculator(1, 1, add);
calculator(1, 2, multiply);
Reference
この問題について(n.関数), 我々は、より多くの情報をここで見つけました https://velog.io/@whdghks/함수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol