자바스크립트 기초 -3

1 분 소요

매우 주관적인 포스트로서 사실과 다를수도 있습니다. 개인적인 정리 차원입니다.

​

자바스크립트 함수

이번에는 함수에 관하여 정리해보자 ​

함수하 하면 우선 이전에 배운 n차함수 같은것이 생각날 것이다.

​

프로그래밍에서 함수도 이와 비슷하다.

다만, 함수의 출력은 어떠한 값을 변화시킬수도, 결과를 화면에 출력할수도, 둘다 아닐수도 있다.

​

함수의 선언은 다음과 같다.


function 함수이름 (인자){

//함수 동작 코드

}

혹은

let 함수이름 = function (인자){


}

후자는 우선 선언만 하고 나중에 그 함수의 동작을 코딩해야 하는 경우 유용할것 같다.

​

위에서 ‘인자’라고 작성한것은, 파라미터라고도 불리며, 함수의 입력값이기도 하다.

함수 내부에 값을 전달해주는 역활이다.

함수 내부에서는 이 값을 받아서 해당되는 작업을 실행하게 된다.

​

다만 경험상 인자로 넣을 변수를 함수내에서 직접 변형 시키는것은 좋지 않다.

차라리 임시변수를 두어 값을 복사한뒤, 임시변수를 지지고 볶도록 하자.

​

그런데 직접 함수를 작성하고, 값을 변경하고, 이 값을 함수 안 말고 밖에서 출력하려는 경우에는 문제가 생긴다.

출력값이 반드시 undefined로 나올것이다.

​

왜이런 결과가 나오는가 하면 간단히 설명하면, 함수 내에서 사용한 임시변수는 함수 밖에서 사용이 불가능하다.

C++의 경우는 함수가 종료되면 함수내 임시변수가 메모리에서 날아가 버린다. 그래서 C++에서는 함수내 변수에 접근을 하면 에러를 내버린다.

이런 함수내 임시변수를 지역변수라 하며, 만약에 이 임시변수가 필요하다면 차후에 작성할 전역변수를 이용하거나, 값을 함수밖으로 끄집어 내면 된다.

​

또한 이러한 변수의 접근제한을 스코프(scope)라고 한다. 요약하자면 중괄호 내부의 함수는 중괄호 내부에서만 접근이 가능하다.

자 그러면 어떻게 함수밖으로 값을 끄집어 낼것인가?

간단히 return 지역변수명; 을 사용하면 된다.

이러면 함수밖으로 지역변수의 값이 밖으로 출력되며, 이를 다른 변수에 저장해서 화면에 출력하거나,

다른곳에서 사용하면 된다.

댓글남기기