home강의 홈으로
Section 4. 함수
Lesson 1. 함수의 의미와 사용법

👉 MDN 문서 보기


💡 기본 문법

function 함수명 (입력값) { // 수행할 일 return 반환값 // 있을 시 } 함수명(입력값);


I. 함수를 사용한다는 것

1. 반복될 수 있는 작업을 정의해두는 것

// 함수 사용 전 let a = 3, b = 4; console.log(`${a} + ${b} = ${a + b}`); console.log(`${a} - ${b} = ${a - b}`); console.log(`${a} * ${b} = ${a * b}`); console.log(`${a} / ${b} = ${a / b}`); let c = 10, d = 2; console.log(`${c} + ${d} = ${c + d}`); console.log(`${c} - ${d} = ${c - d}`); console.log(`${c} * ${d} = ${c * d}`); console.log(`${c} / ${d} = ${c / d}`); let e = 7, f = 5; console.log(`${e} + ${f} = ${e + f}`); console.log(`${e} - ${f} = ${e - f}`); console.log(`${e} * ${f} = ${e * f}`); console.log(`${e} / ${f} = ${e / f}`); function allArithemics (x, y) { console.log(`${x} + ${y} = ${x + y}`); console.log(`${x} - ${y} = ${x - y}`); console.log(`${x} * ${y} = ${x * y}`); console.log(`${x} / ${y} = ${x / y}`); } let a = 3, b = 4; allArithemics(a, b); let c = 10, d = 2; allArithemics(c, d); let e = 7, f = 5; allArithemics(e, f);

2. input을 받아 output을 반환 return 하는 것

function add(x, y) { return x + y; // ⭐️ 값을 반환 } let z = add(2, 3); console.log(z); console.log(add(4, 5)); console.log( add(add(6, 7), add(8, 9)) );


function isOdd (x) { return !!(x % 2); } let num = 12; console.log( `${num}(는)은 ${ isOdd(num) ? '홀' : '짝' }수입니다.` );

a. input으로 받는 값 - 인수인자

function add(x, y) { // x, y를 인자 또는 매개변수(parameter)라 부름 return x + y; } // a, b를 인수(argument)라 부름 let z = add(2, 3);
  • 일반적으로는 굳이 구분하지 않고 혼용해서 사용함

b. 꼭 인자를 받거나 값을 반환하는 것은 아님

let currentTemp = 24.5; function logCurrentTemp () { console.log(`현재 온도는 섭씨 ${currentTemp}도입니다.`); } console.log('반환값:', logCurrentTemp());
  • return 문이 정의되어 있지 않으면 undefined 반환
  • 💡 console.log 실행 뒤 undefined가 뜨는 이유

c. ⭐️ return문은 꼭 마지막

function add (x, y) { console.log(`${x}와 ${y}를 더합니다.`); return x + y; console.log(`결과는 ${x + y}입니다.`); } console.log(add(2, 7));

d. 💡 호이스팅 hoisting

// 함수는 실행문보다 나중에 정의하는 것이 가능 // 변수나 상수는 불가능! (var 제외) console.log(add(2, 7)); function add (x, y) { return x + y; }



II. 함수를 정의하는 방법들

1. 함수 선언

function add (x, y) { return x + y; } console.log(add(2, 7));

2. 상수나 변수에 함수 대입 함수도 값

const subt = function (x, y) { return x - y; } console.log(subt(7, 2));


function add (x, y) { return x + y; } console.log(add(2, 7)); // 💡 기존의 함수를 재정의하는것도 가능 add = function (x, y) { console.log(`${x}와 ${y}를 더합니다.`); console.log(`결과는 ${x + y}입니다.`); return x + y; } console.log(add(2, 7));

3. 화살표 함수

// 한 줄 안에 값만 반환시 const mult = (x, y) => x * y; console.log(mult(2, 7)); // 두 줄 이상의 작업이 있을 시 const mult = (x, y) => { console.log(`${x}와 ${y}를 곱합니다.`); console.log(`결과는 ${x * y}입니다.`); return x * y; }; console.log(mult(2, 7)); // 인자가 하나일 때는 괄호 없이 선언 가능 const pow = x => x ** 2; console.log(pow(3));
  • ⚠️ 화살표 함수는 function 선언 함수와 기능 차이가 있음 이후 다름


⚠️ 2번과 3번 방법으로 선언한 함수는 호이스팅되지 않음

console.log(div(8, 4)); const div = function (x, y) { return x / y; } console.log(div(8, 4)); const div = (x, y) => x / y;

💡 함수 생성 시점이 다르기 때문

  • 1번 방법으로 정의된 함수는 엔진의 코드 실행 이전 미리 생성됨

🤔얄코에게 질문하기질문은 반.드.시 이리로 보내주세요! ( 강의사이트 질문기능 ✖ )

강의에서 이해가 안 되거나 실습상 문제가 있는 부분,
설명이 잘못되었거나 미흡한 부분을 메일로 알려주세요!

답변드린 뒤 필요할 경우 본 페이지에
관련 내용을 추가/수정하도록 하겠습니다.

이메일 주소
yalco@yalco.kr
메일 제목 (반드시 아래 제목을 붙여넣어주세요!)
[질문] 제대로 파는 자바스크립트 (무료 파트) 4-1

🛑질문 전 필독!!

  • 구글링을 먼저 해 주세요. 들어오는 질문의 절반 이상은 구글에 검색해 보면 1분 이내로 답을 찾을 수 있는 내용들입니다.
  • 오류 메시지가 있을 경우 이를 구글에 복붙해서 검색해보면 대부분 짧은 시간 내 해결방법을 찾을 수 있습니다.
  • 강의 페이지에 추가사항 등 놓친 부분이 없는지 확인해주세요. 자주 들어오는 질문은 페이지에 추가사항으로 업데이트됩니다.
  • "유료파트의 강의페이지는 어디 있나요?" - 각 영상의 시작부분 검은 화면마다 해당 챕터의 강의페이지 링크가 있습니다.
  • 질문을 보내주실 때는 문제가 어떻게 발생했고 어떤 상황인지 등을 구체적으로 적어주세요. 스크린샷을 첨부해주시면 더욱 좋습니다.
🌏 Why not change the world?