[부스트코스] DB 연결 웹앱, 18) 자바스크립트 함수

sameul__choi·2020년 3월 2일
0

2. DB 연결 웹 앱

18) 자바스크립트 함수


이번 포스팅에서는 함수에 대해서 공부해보도록 하겠습니다.


"자바스크립트 잘 이해하고 있다는 것" === "자바스크립트 함수를 잘 이해하고 있다"는 말과 같습니다. 그렇기 때문에 자바스크립트의 함수는 굉장히 중요합니다.


함수의 선언

함수는 여러 개의 인자를 받아서, 그 결과를 출력합니다.

파라미터의 개수와 인자의 개수가 일치하지 않아도 오류가 나지 않습니다.

만약, 파라미터 1개가 정의된 함수를 부를 때, 인자의 개수를 0개만 넣어 실행하면, 이미 정의된 파라미터(매개변수)는 undefined이라는 값을 갖게 됩니다.

이는 변수는 초기화됐지만, 값이 할당되지 않았기 때문입니다.

function printName(firstname) {
    var myname = "jisu";
    return myname + " " +  firstname;
}

함수 표현식

함수는 아래 printName과 같이 표현할 수도 있습니다.

이렇게 표현하면 함수선언문과 달리 선언과 호출순서에 따라서 정상적으로 함수가 실행되지 않을 수 있습니다.

function test() { 
    console.log(printName()); 
    var printName = function() {
        return 'anonymouse';
    }
}

test();
//TypeError: printName is not a function

함수 표현식보다 함수 선언문을 더 자주 사용하지만, 어떤 코딩컨벤션에서는 함수 표현식을 권장하기도 합니다.

어떤 컨벤션을 갖던지 한가지만 정해서 사용하는 게 좋습니다.


함수 arguments 객체

함수가 실행되면 그 안에는 arguments라는 특별한 지역변수가 자동으로 생성됩니다.

arguments의 타입은 객체 입니다.(console.log( typeof arguments) 로 확인해보세요!)

자바스크립트 함수는 선언한 파라미터보다 더 많은 인자를 보낼 수도 있습니다.

이때 넘어온 인자를 arguments로 배열의 형태로 하나씩 접근할 수가 있습니다.

arguments는 배열타입은 아닙니다.

따라서 배열의 메서드를 사용할 수가 없습니다.

function a() {
 console.log(arguments);
}
a(1,2,3);

0개의 댓글