1. 함수

javascript에서 함수는 특정한 기능을 수행할 수 있도록 따로 만들어 두는 독립적인 블록입니다.

이러한 함수의 장점은 크게 두 가지 입니다.

좀 더 깔끔하게 코드를 정리할 수 있고, 한 번 만들면 필요할 때마다 호출에서 몇번이고 재사용 할 수 있습니다.

함수는 아래와 같이 만들 수 있습니다.

function 함수이름(매개변수) {
	//실행코드
	return 반환값;
};

여기서 매개변수는 함수가 받아올 값입니다. 반환값은 함수의 호출이 끝났을 때, 함수를 호출한 곳으로 되돌려줄 함수의 결과값입니다.

아래 예시를 보겠습니다.

function Add(a,b) {
	const result = a + b;
	return result;
};

const plus = Add(10,20); //30

위 Add라는 함수는 a와 b라는 임의의 매개변수(어떤 이름이 되어도 상관 없습니다.)를 받아옵니다. 이후 a와 b를 더해 result에 저장한 후, result를 반환해줍니다.

아래서 함수를 Add(10,20)과 같이 호출하여 plus라는 변수에 넣었습니다. 이때 10과 20을 각각 인수라고 칭합니다.

10,20을 넣어 함수에 호출하면 a와 b는 각각 10과 20이 됩니다(10과 20을 담은 변수가 됩니다.).

그럼으로 result에는 a(10) + b(20)이므로 20의 값이 담기게 됩니다.

결론적으로 반환된 result의 값 20이, plus라는 변수에 담기게 됩니다.

2. 지역변수와 전역변수

여기서 주의할 점이 있습니다. 바로 Add라는 함수 안에서 생성된 변수인 const result는 밖에서 절대 찾을 수 없다는 점입니다.

function Add(a,b) {
	const result = a + b; //지역변수
	return result;
};

result //??
const number = 1;

이렇게 함수 안에서 생성된 변수를 지역변수라고 합니다. 지역변수는 생성된 그 지역(함수) 안에서만 작용할 수 있습니다. 즉, 함수의 호출과 함께 생성되고, 함수 호출이 끝나면 사라집니다.

반면에 const number은 함수 밖에서 생성되었습니다. 이렇게 함수 밖에서 생성된 변수를 전역변수라고 하며, 전체 코드의 시작과 함께 생성되고, 전체 코드가 끝나면 사라집니다.

let a = 1;
function test() {
	a = a+1; //가능
};