>

01. 선언적 함수

함수를 만드는 방법입니다.

{
            function func(){
                document.write("1번. 함수가 실행되었습니다.")
            }
            func();
        }
        
결과보기
1번. 함수가 실행되었습니다.

02. 익명 함수

변수명에 함수코드를 저장해 사용합니다.

{
    데이터 타입 (자료형) --> 타입 스크립트
    const x = 100;
    const x1 = "100";
    const x2 = [];
    const x3 = {};
    const x4 = null, undefined;
    const x5 = function(){}
    const x6 = true, boolean;

    const func = function(){
        document.write("2번. 함수가 실행되었습니다.")
    }
    func();
}
결과보기
2번. 함수가 실행되었습니다.

03. 매개변수 함수

함수를 호출할 때 인수로 전달된 값을 함수 내부에서 사용할 수 있게 해주는 변수입니다.
또한, 함수의 인수(argument)란 함수가 호출될 때 함수로 값을 전달해주는 변수를 가리킵니다.

{
    function func(str){ //함수 안에 넣었다고해서 파라미터,인자라고 불린다
        document.write(str);
    }
    func("3번. 함수가 실행되었습니다.
") }
결과보기
3번. 함수가 실행되었습니다.

04. 리턴값 함수

리턴값이란 함수가 어떠한 기능을 수행하고 그 결과를 호출한 곳으로 돌려주는 값을 말합니다.
함수가 어떠한 기능을 수행하고 돌려줄 값이 있으면 return 명령을 사용합니다.

{
    function func(){
        const str = "4번. 함수가 실행되었습니다.4
"; return str; } document.write(func()); }
결과보기
4번. 함수가 실행되었습니다.

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

기본 함수 표현을 화살표를 통해서 좀 더 간단하게 표현 해줄 수 있는 방법입니다.

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

    func();
}
결과보기
5번. 함수가 실행되었습니다.

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

기본 함수 표현을 화살표를 통해서 좀 더 간단하게 표현 해줄 수 있는 방법입니다.

{
    //1번째 방법
    const func = function(){
        document.write("6-1번. 안녕")
    }

    //2번째 방법
    const func = () => {
        document.write("6-1번. 안녕")
    }

    //3번째 방법
    const func = () => document.write("6-1번. 안녕");
    func();
}
결과보기
6-1번. 안녕

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

기본 함수 표현을 화살표를 통해서 좀 더 간단하게 표현 해줄 수 있는 방법입니다.

{
    //1번째 방법
    function func(str){
        document.write(str);
    }

    //2번째 방법
    func = (str) => document.write(str);

    //3번째 방법
    func = str => document.write(str);

    func("7번. 안녕");
}
결과보기
7번. 안녕

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

기본 함수 표현을 화살표를 통해서 좀 더 간단하게 표현 해줄 수 있는 방법입니다.

{
    // function func(){
    //     const str = "8번. 안녕";
    //     return str;
    // }

    func = () => {
        const str = "8번. 안녕";
        return str;
    }

    document.write(func())
}
결과보기
8번. 안녕

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

기본 함수 표현을 화살표를 통해서 좀 더 간단하게 표현 해줄 수 있는 방법입니다.

{
    const func = (str) => { //변수에 매개변수 삽입 후
        return str; //매개변수를 리턴해준다.
    }
    document.write(func("함수가 실행되었습니다.9<br>")); //변수 출력
}
결과보기
8번. 안녕

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

기본 함수 표현을 화살표를 통해서 좀 더 간단하게 표현 해줄 수 있는 방법입니다.

{
    const func = (str) => { //변수에 매개변수 삽입 후
        return str; //매개변수를 리턴해준다.
    }
    document.write(func("함수가 실행되었습니다.9<br>")); //변수 출력
}
결과보기
함수가 실행되었습니다.9

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

기본 함수 표현을 화살표를 통해서 좀 더 간단하게 표현 해줄 수 있는 방법입니다.

{
    const func = str => { //변수에 매개변수 삽입 후
        return str; //매개변수를 리턴해준다.
    }
    document.write(func("함수가 실행되었습니다.10<br>")); //변수 출력
}
결과보기
함수가 실행되었습니다.10

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

기본 함수 표현을 화살표를 통해서 좀 더 간단하게 표현 해줄 수 있는 방법입니다.

{
    const func = (str) => { //const가 있냐 없냐에 따라 익명 선언적 함수 둘 중 하나로 결정됨
        return str;
    }
    document.write(func("함수가 실행되었습니다.11
")); //변수 출력 }
결과보기
함수가 실행되었습니다.11

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

기본 함수 표현을 화살표를 통해서 좀 더 간단하게 표현 해줄 수 있는 방법입니다.

{
    const func = str => str; //const가 있냐 없냐에 따라 익명 선언적 함수 둘 중 하나로 결정됨

    document.write(func("함수가 실행되었습니다.12
")); //변수 출력 }
결과보기
함수가 실행되었습니다.12

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

함수 : 실행문 집합체, 재활용

{
    function func(num, str1, str2){ //function func (자리에) 매개변수를 지정 후
        document.write(num + "." + str1 + "가 "+ str2 +  "되었습니다.") //함수안에 내용을 이런식으로 활용 가능
    }

    func("1", "함수", "실행"); //매개변수는 변수안에 변수를 선언 가능하다 지금은 str1에 "함수" 넣은 상태
    func("2", "자바스크립트", "실행"); //매개변수는 변수안에 변수를 선언 가능하다 지금은 str1에 "함수" 넣은 상태
    func("3", "제이쿼리", "실행"); //매개변수는 변수안에 변수를 선언 가능하다 지금은 str1에 "함수" 넣은 상태
}
결과보기
1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.

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

---

{
    function func(num1, str1, com){
        document.write(num1 + "함수가 실행되었습니다.")
    }

    const youNum1 = 1;
    const youNum2 = 2;
    const youNum3 = 1;
    const youStr1 = "함수";
    const youStr2 = "자바스크립트";
    const youStr3 = "제이쿼리";
    const youCom = "실행";

    func(youNum1, youNum2, youCom); // 1번 func() 괄호 안의 
}
결과보기
1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.

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

---

{
    function func(num1, str1, com){
        document.write(num1 + "." + str1 + "가 " + com +"되었습니다. 
") } 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); }
결과보기
1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.

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(); }
결과보기
1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.

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

---

{
    function func(num, name, word){
        const num = num; // 원래는 이렇게 const num에는 무엇 무엇 하나하나 지정해주었는데
            
        this.num = num; //this 라는걸 쓰면서 재활용을 한다.
        this.name = name; //name이라는 변수에 name 매배변수의 값 1 저장
        this.word = word; //word이라는 변수에 word 매배변수의 값 1 저장
            
        this.result1 = function(){ //객체안에 함수를 적고 불러오는것이 가능합니다.
            document.write(this.num+this.name+"가 "+this.word+"되었습니다.
") } } //인스턴스 생성 : this 는 인스턴스(new)를 적어주어야만 사용이 가능하빈다. const info1 = new func("1", "함수", "실행"); const info2 = new func("2", "자바스크립트", "실행"); const info3 = new func("2", "자바스크립트", "실행"); //실행 info1.result1(); info2.result1(); info3.result1(); }
결과보기
1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.

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

---

 {
    function func(num, name, word){
        // const num = num; // 원래는 이렇게 const num에는 무엇 무엇 하나하나 지정해주었는데
        
        this.num = num; //this 라는걸 쓰면서 재활용을 한다.
        this.name = name; //name이라는 변수에 name 매배변수의 값 1 저장
        this.word = word; //word이라는 변수에 word 매배변수의 값 1 저장
        
    }

    func.prototype.result = function(){ //객체안에 함수를 적고 불러오는것이 가능합니다.
        document.write(this.num+this.name+"가 "+this.word+"되었습니다.
") } //인스턴스 생성 : this 는 인스턴스(new)를 적어주어야만 사용이 가능하빈다. const info1 = new func("1", "함수", "실행"); const info2 = new func("2", "자바스크립트", "실행"); const info3 = new func("2", "자바스크립트", "실행"); //실행 info1.result(); info2.result(); info3.result(); }
결과보기
1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.

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

---

{
    function func(num, name, word){
        // const num = num; // 원래는 이렇게 const num에는 무엇 무엇 하나하나 지정해주었는데
        
        this.num = num; //this 라는걸 쓰면서 재활용을 한다.
        this.name = name; //name이라는 변수에 name 매배변수의 값 1 저장
        this.word = word; //word이라는 변수에 word 매배변수의 값 1 저장
        
    }

    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+"되었습니다.
"); } } //인스턴스 생성 : this 는 인스턴스(new)를 적어주어야만 사용이 가능하빈다. const info1 = new func("1", "함수", "실행"); const info2 = new func("2", "자바스크립트", "실행"); const info3 = new func("2", "자바스크립트", "실행"); //실행 info1.result1(); info2.result2(); info3.result3(); }
결과보기
1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.

20. 즉시 실행 함수

---

(function func(){
    document.write("함수실행")
}());

//화살표함수
(() => {
    document.write("함수실행")
})();
결과보기
1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.

21. 파라미터 함수

---

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

function func(str = "함수가 실행되었습니다."){
    document.write(str)
}
func()
결과보기
1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.

22. 아규먼트 함수

---

function func(a, b){
    document.write(arguments[0]);
    document.write(arguments[1]);
}
func("함수가 실행되었습니다.", "함수가 실행되었습니다.");
결과보기
1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.

23. 재귀함수 : 자기 자신을 호출

---

// 반복적으로
    function func(num){
        if(num<=1){
            document.write("함수가 실행되었습니다."+num);
        } else {
            document.write("함수가 실행되었습니다."+num);
            func(num - 1);
        }
        // func()
    }

    func(10);

    //애니메이션
    function animation(){
        document.write("함수가 실행되었습니다.");
        
        requestAnimationFrame(animation);
    }
    animation();

결과보기

24. 재귀함수 : 자기 자신을 호출

---

//재귀함수 : 동시에 여러개 실행
//콜백함수 : 하나의 함수가 실행 -> 두번째 함수가 실행
//콜백함수란 각 함수가 순서대로 완벽하게 출력이 되면 다음 함수가 출력되게끔 해주는것
//웹사이트 이미지 로딩이 순서대로 나온것과 비슷
function func(){
    document.write("함수가 실행되었습니다. 1");
}

function callback(str){
    document.write("함수가 실행되었습니다. 2");
    str();
}
callback(func);
결과보기

25. 재귀함수 : 자기 자신을 호출

---

//웹사이트 이미지 로딩이 순서대로 나온것과 비슷
    function func(index){
        document.write("함수가 실행되었습니다." + index);
    }
z
    function callback(num){
        for(let i=1; i<=10; i++){
            num(i);    
        }
    }
    callback(func);
결과보기

26. 콜백함수 : 동기/비동기

---

function funcA(callback){
    setTimeout(()=>{
        console.log("funcA가 실행되었습니다.
"); callback(); },1000); } function funcB(){ setTimeout(()=>{ console.log("funcB가 실행되었습니다.
"); callback(); },1000); } function funcC(){ setTimeout(()=>{ console.log("funcC가 실행되었습니다.
"); callback(); },1000); } function funcD(){ setTimeout(()=>{ console.log("funcD가 실행되었습니다.
"); },1000); } // 출력 되기 전에 콜백함수를 통해 출력 값을 뒤바꿈 // 1초 뒤에 funcA가 실행되었을때 funcB를 불러들임 funcA(function(){ funcB(function(){ funcC(function(){ funcD(); }); }); });
결과보기

27. 콜백함수 : Promise

---



결과보기

28. 콜백함수 : 동기/비동기

---

//28번
    function func(){
        function funcA(){
            console.log("함수가 실행되었습니다.");
        };
        funcA();

        function funcB(){
            console.log("함수가 실행되었습니다.");
        };
        funcB();
    }
    func();
}

결과보기

29. 클래스

---

class study{
    constructor(num, name){
        this.num = num;
        this.name = name;
        this.job = name;
    }

    result(){
        document.write(this.num + ",내 이름은 "+this.name+"이며, 직업은"+this.job+"입니다.");
    };
}
const info1 = new study("1", "웹쓰", "웹퍼블리셔");
const info2 = new study("2", "웹쓰", "웹퍼블리셔");

info1.result();
info2.result();
결과보기

30. 클래스 상속

---

class study{
    constructor(num, name){
        this.num = num;
        this.name = name;
        this.job = name;
    }

    result(){
        document.write(this.num + ",내 이름은 "+this.name+"이며, 직업은"+this.job+"입니다.");
    };
}

class study2 extends study {
    constructor(num, name, job, age){
        super(num, name, job);
        this.age = age;
    }

    result(){
        document.write(this.num + ",내 이름은 "+this.name+"이며, 직업은"+this.job+"이며, 나이는"+this.age+"살 입니다.");
    };
}
const info1 = new study("1", "웹쓰", "웹퍼블리셔");
const info2 = new study2("2", "웹쓰", "웹퍼블리셔", 100);

info1.result();
info2.result();
info2.result2();
결과보기