// 함수의 선언 function 함수이름(parameter1, parameter2...) { // 실행코드... return 반환값 }
함수이름(argument1, argument2...) // 함수의 호출
function doubleNum(num) { // num은 매개변수(함수와 메서드 입력 변수 이름) console.log(num * 2); }
let arg = 10;
doubleNum(arg); // arg는 인자 (함수와 메서드에 실제 입력되는 값)
function sum(a, b, c) { console.log(`--- ${a} + ${b} + ${c} ---`); return a + b + c; }console.log(sum(10, 20, 30)); // 60
console.log(sum(10, 20, 50)); // 80// 인자가 매개변수보다 많을 때
console.log(sum(10, 20, 30, 40, 50)); // 60
// 인자가 매개변수보다 적을 때
console.log(sum(10, 20)); // NaN
function sum(a, b, c = 10) { //c의 기본값은 10 console.log(`--- ${a} + ${b} + ${c} ---`); return a + b + c; }
sum(10, 20); //10 + 20 + 10
sum(40, 50, 60); //40 + 50 + 60
function add(a, b) { return a + b; console.log(`${a} + ${b} = ${a+b}`); }function printAdd(a, b) {
console.log(</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>a<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string"> + </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>b<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string"> = </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>a<span class="token operator">+</span>b<span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">);
}console.log('---add---');
let result = add(3, 4);
console.log(</span><span class="token string">result: </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>result<span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">); // 7
console.log('---printAdd---');
let result2 = printAdd(3, 4);
console.log(</span><span class="token string">result: </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>result2<span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">); // undefined
// 함수 선언문 (구문으로 선언) function sum(x, y){ return x + y; }// 함수 표현식 (함수 이름 없이 선언하여 변수에 값으로 할당)
let sumXY = function(x, y) {
return x + y;
};
console.log(sum(10, 20));
console.log(sumXY(10, 20));
function func1(x, y) { return x + y }// 위 함수를 화살표 함수로 작성하면 아래와 같습니다.
let func1 = (x, y) => {
return x + y
}// 함수 내부에 한 줄 표현식만 반환한다면 return 키워드를 생략할 수 있습니다.
let func2 = (x, y) => x + y;
console.log(func2(5, 10));
// 함수의 매개변수가 한 개라면 소괄호를 생략할 수 있습니다.
let func3 = x => x + 10
console.log(func3(10));
(function() { console.log('이 함수는 만들어지자마자 바로 실행됩니다!'); })();
(function() {
document.querySelector(".btn").addEventListener("click", function(){
console.log('click!')
});
})();