JS

자바 스크립트 활용 예시(function)

goshek 2024. 8. 5. 12:09
/*
    ! 자바슼트립트의 함수
    1. 함수의 정의
    : 특정 작업을 수행하거나 값을 계산하는데 사용되는 코드의 묶음(집합)

    2. 함수의 사용 용도/ 예제

    ? 1) 코드의 재사용
*/
function sum(a,b){
    return a+b;
}

function min(a,b){
    return a-b;
}

/*
    ? 2) 모듈화 & 추상화
    : 복잡한 작업을 수행하는 코드를 함수로 분리
        >> 각 함수가 수행하는 작업에 집중
   
    모듈성
    : 로직 단위로 작업을 나누어 관리할 수 있는 특성

    ? 3) 이벤트 처리
    : 웹 페이지에서 발생하는 다양한 이벤트를 처리하는데 사용
*/
// function message(){
//     console.log('버튼이 클릭되었습니다.');
// }
// let button=document.querySelector('button');
// button.addEventListener('click',message);

/*
    함수 구현 방법(함수 생성)
    : function 키워드를 사용
    function 함수명(매개변수(파라미터)){
        코드
        return 값;
    }
   
    ? 함수명
    : 변수 명명과 유사
    : 동사 사용을 권장

    ? 매겨변수
    : 함수에 입력으로 제공되는 값(데이터)
    : 대부분 해당 값을 통해 특정 작업을 수행

    ? 결과값(return)
    : 함수가 적업을 환료한 후 반환하는 값
    : return 키워드를 사용하여 결과값을 반환

    >> 함수명, 매겨변수, 결과값은 선택 가능

    # 함수 선언 방식(3가지)
    & 1) 함수 선언식  
        : function 키워드 사용, 함수의 이름이 필수적으로 명시
            >> 호이스팅이 적용
                : 함수를 선언하기 전에 호출할 수 있음
*/
greet();
console.log('함수 호출 이전');
function greet(){//함수 선언(정의)
    console.log('안녕하세요');
}
//함수 호출(사용)
greet();
/*
    & 2) 함수 표현식
        : 함수를 변수에 할당하는 방식으로 정의
        : 함수명 사용이 선택적
        : 호이스팅 적용X >> 선언(정의) 이전에 호출 불가

    변수 지정 키워드는 let, const 모두 사용 가능
    const 변수명=function(){
        코드
    }
*/

/*
    이름이 없는 함수: "익명 함수"
    : 함수명을 지정하지 않는 함수
*/
greet2(); //error
console.log('함수 선언 이전');
const greet2=function(){
    console.log('안녕하세요 :)함수 표현식입니다.');
}
greet2();
//변수명은 있되, 함수명은 없는 것, 함수 호출(사용) 방법은 동일
/*
    & 3) 화살표 함수
    : 기존의 function 키워드를 화살표로 대체하여 간결한 함수를 작성
    : 항상 익명 함수로 사용
    : 'this'가 일반 함수와 다르게 바인딩 됨
    : 호이스팅 불가

    const 변수명= (매개변수) =>{
        함수 기능 작성
        return 반환값;
    }
*/
greet3(); //error
console.log('함수 선언 이전');
const greet3= () =>{
    console.log('안녕하세요 :) 화살표 함수 입니다.');
}
greet3();

// ? 화살표 함수는 함수 본문(기능 구현부)이 단일문인 경우 중괄호와 return 키워드 생락이 가능하다.
const greet4=name=>console.log(`안녕하세요 ${name}`);
greet4('User');

/*
    ?인자값(argument)
    :실제 계산을 위해 파라미터로 전달되는 값
    : 파라미터가 변수의 선언
    : 인자값 변수의 할당

    파라미터와 인자는 생략가능

    # 함수 호출방법
    함수를 생성- 함수를 선언한다.
    함수를 사용- 함수를 호출한다.

    함수명(인자값);

    # 함수의 스코프
    지역변수(local)
    : 중괄호 내의 영역(함수 내부)

    전역변수(global)
    : 해당 파일(모듈)내의 영역
*/

function introduce(){
    //지역변수(함수 내의 변수)
    let job='Developer';
}
//전역변수(global)
let job='User';
/*
    *함수 선언 방식에 따른 선택
    - 일반적 상황에서는 함수 선언문 방식으로 사용
    - 조건부 함수 사용 시 함수 표현식 사용
    - 콜백 함수 사용 시 화살표 함수 사용
*/