JavaScript/이론

[JS] Function

Puft 2025. 1. 16. 15:47

같은 기능이 반복될 때

매번 새롭게 만들지 말고 자주 사용하는 기능을

하나로 묶어서 쓰는게 편리합니다.

이 묶는 기능을 함수라고 하는데요.

JavaScript에도 함수 기능이 있습니다.

구조는 이렇습니다.

 

function 함수명 (파라미터) {

}

이떄 파라미터는 생략될 수 있습니다.

 

function showError(){

alert("에러 발생 !!!!");}

showError();

 

파라미터가 없는 함수의 예시입니다.

function sayHello(name){

let msg = `hello, ${name}`;

alert(msg);

}

sayHello("David");

 

그리고 파라미터가 있는 함수입니다.

이 함수에 파라미터를 넣지 않고 실행하면 어떻게 될까요?

 

sayHello();

 

이 경우에는 undefined가 출력됩니다.

그래서 파라미터가 없는 경우 방지하기 위해서

다음과 같이 구현할 수 있습니다.

 

function sayHello(name){

let msg = `hello, ${name}`;

if(name) {

msg += ` , ${name}`

}

alert(msg);

}

 

다음은 함수에서 쓰이는 변수에 대해서 알아보겠습니다.

함수 밖에서 어디서나 접근할 수 있는 변수를

전역 변수라고합니다.

반면에 함수 내부에서만 접근 할 수 있는 변수를

지역 변수라고 합니다.

 

let msg = "Hello";

console.log(msg);

function sayHello(name){

let msg = `hello, ${name}`;

if(name) {

msg += ` , ${name}`

}

alert(msg);

}

 

위 코드에서 첫번째로 선언된 변수는

어디서나 접근 가능해서 전역 변수,

함수 내에 선언된 변수는 함수 내에서만

사용할 수 있으므로 지역 변수입니다.

지역 변수는 함수 내에서 전역 변수와 같은 이름으로

지을 수 있고, 서로 간섭 받지 않습니다.

전역 변수가 많아진다면 관리하기 힘들기 때문에

가급적이면 함수에 특화되어있는 지역 변수를 사용하는 것이 좋습니다.

 

OR 연산자를 활용하면 파라미터로 기본 값을 지정할 수 있는데요.

 

function sayHello2(name){

let newName = name || 'Friend';

let msg = `Hello, ${newName}`;

console.log(msg);

}

 

값이 안들어 왔을 시 'Friend'를 변수에 집어 넣음으로써

기본값을 지정했습니다.

 

이와 마찬가지로

함수를 정의할 때

함수의 파라미터에 값을 넣으면

그 값이 default 값이 되는데요.

 

function sayHello3(name = 'Friend'){

let msg = `Hello, ${name}`;

}

 

이렇게 파라미터로 값을 넣어주면

해당 값이 기본값이 되게 됩니다.

 

JS의 함수도 값을 반환 할 수 있습니다.

 

function add(num1, num2){

return num1 + num2;

}

 

return은 반환하는 것과 동시에 함수를 종료하는 기능도 있습니다.

 

함수에 대해서 덧붙이자면

함수는 한 번에 한 작업만 하는게 좋기 때문에

하나의 함수가 여러 작업을 진행한다면, 여러개의 함수로 구현하고

함수명은 읽기 쉽고, 어떤 기능인지 알 수 있게 작명해야합니다.