본문 바로가기
Javascript

함수 유형 알아보기

by 코딩 척척학사 2022. 8. 22.
728x90

함수의 유형

다양한 함수의 유형을 익혀두어 효율적으로 자바스크립트를 작성하도록 합시다!

01. 선언적 함수

선언적 함수란 함수를 선언하고 호출하여 함수를 실행하는 함수입니다.

function func() {
    document.write("함수가 실행되었습니다.");
}
func();     //함수는 실행문이 있어야 실행된다.

02. 익명 함수

익명 함수란 변수에 함수 데이터를 저장하여 변수를 마치 함수처럼 사용합니다. 따라서, 변수를 먼저 선언한 이후에 함수를 호출해야 합니다.

const func = function() {   //변수 안에 함수가 있으며, 함수는 이름이 없기 때문에 익명함수라고 함. 변수의 이름을 실행 함수처럼 씀. (const가 아닌 let이나 var로 변수를 선언해도 된다.)
    document.write("함수가 실행되었습니다.");
}
func();

03. 매개변수 함수

함수를 호출할 때 전달하는 함수를 "매개변수"라고 합니다. 매개변수가 있는 함수를 매개변수 함수라고 합니다.

//let str 함수를 원래 선언해야 하지만 생략이 가능함.
function func(str){     //문자열이 들어간다는 의미에서 str을 넣어줌
    document.write(str);
}
func("함수가 실행되었습니다.");

04. 리턴값 함수

return은 함수를 통해 처리된 결과를 반환시켜주는 명령어입니다. 리턴값 함수는 반환된 결과를 출력하는 함수입니다.

function func(){
    const str = "함수가 실행되었습니다.";
    return str;
}
document.write(func()); //return으로 반환된 결과를 출력함.

05. 화살표 함수 : 선언적 함수

화살표 함수는 함수 코드의 function을 생략하고 =과 =>(화살표)를 사용해 함수를 표현합니다. 다음은 선언적 함수를 화살표 함수로 바꾼 예시입니다.

//원형
function func() {
    document.write("함수가 실행되었습니다.");
}
func();

//화살표 함수
func = () => {  //function을 없애고 =과 화살표로 형태를 바꿈.
    document.write("함수가 실행되었습니다.");
}
func();

//축약형 : 실행문이 하나일 경우, 중괄호도 생략하여 축약할 수 있습니다.
func = () => document.write("함수가 실행되었습니다.");
func();

06. 화살표 함수 : 익명 함수

화살표 함수는 함수 코드의 function을 생략하고 =과 =>(화살표)를 사용해 함수를 표현합니다. 다음은 익명 함수를 화살표 함수로 바꾼 예시입니다.

//원형
const func = function() {
    document.write("함수가 실행되었습니다.");
}
func();

//화살표 함수
const func = () => {
    document.write("함수가 실행되었습니다.");
}
func();

//축약형
const func = () => document.write("함수가 실행되었습니다.");
func();

07. 화살표 함수 : 매개변수 함수

화살표 함수는 함수 코드의 function을 생략하고 =과 =>(화살표)를 사용해 함수를 표현합니다. 다음은 매개변수 함수를 화살표 함수로 바꾼 예시입니다.

//원형
function func(str){
    document.write(str);
}
func("함수가 실행되었습니다.");

//화상표 함수
func = (str) => {
    document.write(str);
}
func("함수가 실행되었습니다.");

//축약형
func = (str) => document.write(str);
func("함수가 실행되었습니다.");

//축약형2 : 변수가 하나일 때에는 ()도 생략이 가능함.
func = str => document.write(str);
func("함수가 실행되었습니다.");

08. 화살표 함수 : 리턴값 함수

화살표 함수는 함수 코드의 function을 생략하고 =과 =>(화살표)를 사용해 함수를 표현합니다. 다음은 리턴값 함수를 화살표 함수로 바꾼 예시입니다.

// 원형
function func(){
    const str = "함수가 실행되었습니다.";
    return str;
}
document.write(func());

//화살표함수 (실행문이 두개 이상이기 때문에 중괄호의 생략이 불가능하다.)
func = () => {
    const str = "함수가 실행되었습니다.";
    return str;
}
document.write(func());

09. 화살표 함수 : 익명 함수 + 매개변수 + 리턴값

화살표 함수는 다양한 함수를 섞어서 표현할 수도 있습니다. 다음은 익명함수와 매개변수, 리턴값 함수가 섞인 예시입니다.

const func = (str) => { //익명함수이기 때문에 변수부터 선언함. 매개변수와 섞여있기 때문에 괄호 안에 매개변수가 들어간다.
    return str; //결과를 의미하는 return. 리턴값 함수와 섞여있다.
}
document.write(func("함수가 실행습니다."));    //리턴값 함수와 매개변수 함수가 섞여있다.

10. 화살표 함수 : 익명 함수 + 매개변수 + 리턴값 + 괄호생략

화살표 함수는 다양한 함수를 섞어서 표현할 수도 있습니다. 섞인 함수도 매개변수가 하나일 경우, 괄호()까지 생략할 수 있습니다.

const func = str => {
    return str;
}
document.write(func("함수가 실행되었습니다."));

11. 화살표 함수 : 익명 함수 + 매개변수 + 리턴값 + 괄호생략 + 리턴생략

화살표 함수는 다양한 함수를 섞어서 표현할 수도 있습니다. 실행문이 리턴 하나인 경우, 리턴도 생략할 수 있습니다.

const func = str => str;
document.write(func("함수가 실행되었습니다."));

12. 화살표 함수 : 선언적 함수 + 매개변수 + 리턴값 + 괄호생략 + 리턴생략

화살표 함수는 다양한 함수를 섞어서 표현할 수도 있습니다. 선언적 함수는 변수의 선언이 필요 없어 더 간단히 적을 수 있습니다.

func = str => str;  //선언적 함수는 변수의 선언이 필요없음
document.write(func("함수가 실행되었습니다."));

13. 함수 유형 : 함수와 매개변수를 이용한 형태

함수와 매개변수를 활용해 함수를 재활용 할 수 있습니다.

function func(num, str1, str2){
    document.write(num + ". " + str1 + "가 " + str2 + "되었습니다.");
}
func("1", "함수", "실행");
func("2", "자바스크립트", "실행");
func("3", "제이쿼리", "실행");

14. 함수 유형 : 함수와 변수를 이용한 형태

함수와 변수를 이용해 함수를 재활용 할 수 있습니다.

function func(num, str1, str2){
    document.write(num + ". " + str1 + "가 " + str2 + "되었습니다.");
}
const youNum1 = 1;
const youNum2 = 2;
const youNum3 = 3;
const youStr1 = "함수";
const youStr2 = "자바스크립트";
const youStr3 = "제이쿼리";
const youStr4 = "실행";

func(youNum1, youStr1, youStr4);
func(youNum2, youStr2, youStr4);
func(youNum3, youStr3, youStr4);

15. 함수 유형 : 함수와 배열, 객체를 이용한 형태

함수와 배열, 객체를 이용해 함수를 재활용 할 수 있습니다.

function func(num, str1, str2){
    document.write(num + ". " + str1 + "가 " + str2 + "되었습니다.");
}
const info = [
    {
        num : "1",
        name : "함수",
        com : "실행"
    },
    {
        num : "2",
        name : "자바스크립트",
        com : "실행"
    },
    {
        num : "3",
        name : "제이쿼리",
        com : "실행"
    }
];
func(info[0].num, info[0].name, info[0].com);
func(info[1].num, info[1].name, info[1].com);
func(info[2].num, info[2].name, info[2].com);

16. 함수 유형 : 객체 안에 변수와 함수를 이용한 형태

객체 안에 변수와 함수를 저장할 수 있지만, 함수의 재활용은 안되는 형태입니다.


const info = {
    num1 : 1,
    name1 : "함수",
    word1 : "실행",

    num2 : 2,
    name2 : "자바스크립트",
    word2 : "실행",

    num3 : 3,
    name3 : "제이쿼리",
    word3 : "실행",

    result1 : function(){
        document.write(info.num1 + ". " + info.name1 + "가 " + info.word1 + "되었습니다.");
    },
    result2 : function(){
        document.write(info.num2 + ". " + info.name2 + "가 " + info.word2 + "되었습니다.");
    },
    result3 : function(){
        document.write(info.num3 + ". " + info.name3 + "가 " + info.word3 + "되었습니다.");
    }
}

info.result1();
info.result2();
info.result3();

17. 함수 유형 : 객체 생성자 함수

this를 사용해 함수를 재활용 할 수 있도록 한 현태입니다.

function func(num, name, word){
    this.num = num; //const 생략하고 this 사용함. 변수를 생성했다고 보면 됨. 자동으로 변수 생성해주는 느낌
    this.name = name;
    this.word = word;

    this.result = function(){
        document.write(this.num + ". " + this.name + "가 " + this.word + "되었습니다.");
    }
}

//인스턴스 생성 //인스턴스를 꼭 생성해 주어야 실행이 된다.
const info1 = new func("1", "함수", "실행");
const info2 = new func("2", "자바스크립트", "실행");
const info3 = new func("3", "제이쿼리", "실행");

//실행
info1.result();
info2.result();
info3.result();

18. 함수 유형 : 프로트타입 함수

사용하지 않는 함수가 메모리를 차지하는 것을 방지하기 위해, 함수를 바깥에 작성한 형태입니다.

function func(num, name, word){
    this.num = num;
    this.name = name;
    this.word = word;
}

//쓸데 없는 함수도 실행되어 메모리를 차지하는 것을 방지하기 위해 함수를 밖으로 꺼냄
func.prototype.result = function(){
    document.write(this.num + ". " + this.name + "가 " + this.word + "되었습니다.");
}

//인스턴스 생성
const info1 = new func("1", "함수", "실행");
const info2 = new func("2", "자바스크립트", "실행");
const info3 = new func("3", "제이쿼리", "실행");

//실행
info1.result();
info2.result();
info3.result();

19. 함수 유형 : 객체 리터럴 함수

다수의 함수를 객체 안에 저장해서 원하는 함수만 실행할 수 있도록 한 형태입니다.


function func(num, name, word){
    this.num = num;
    this.name = name;
    this.word = word;
}

func.prototype = {  //다수의 함수를 객체 안에 저장해서 원하는 함수만 실행시킬 수 있게 함
    result1 : function(){
        document.write(this.num + ". " + this.name + "가 " + this.word + "되었습니다.");
    },
    result2 : function(){
        document.write(this.num + ". " + this.name + "가 " + this.word + "되었습니다.");
    },
    result3 : function(){
        document.write(this.num + ". " + this.name + "가 " + this.word + "되었습니다.");
    }
}

//인스턴스 생성
const info1 = new func("1", "함수", "실행");
const info2 = new func("2", "자바스크립트", "실행");
const info3 = new func("3", "제이쿼리", "실행");

//실행
info1.result1();
info2.result2();
info3.result3();
728x90

'Javascript' 카테고리의 다른 글

메서드 / 속성 알아보기 : 크기 또는 위치  (10) 2022.09.01
GSAP 알아보기  (4) 2022.08.29
문자열 메서드 : charAt() / charCodeAt()  (9) 2022.08.22
문자열 메서드 : match()  (7) 2022.08.22
문자열 메서드 : search()  (7) 2022.08.22

댓글


HTML이 적힌 썸네일 이미지
CSS가 적힌 썸네일 이미지
JAVASCRIPT가 적힌 썸네일 이미지

JAVASCRIPT

자세히 보기