함수는 코드를 작성하다 보면 중복되는 작업을 하는 코드를 작성해야 하는 경우가 있는데, 매번 똑같은 코드를 작성해서 구현하는 것은 비효율적이고 코드 자체도 가독성이 매우 떨어진다.
그래서 함수를 이용하여 한 번만 작성하고 필요할 때 그 필요한 함수를 호출하여서 작업을 하는 것이 좋다.
함수를 만드는 방법은 함수 선언을 하여 만든다.
함수 선언
함수 선언 방법은 function 키워드를 이용하여 다음과 같은 구조를 가진다.
//함수 선언//
function 함수명 () {
//함수 내용
}
기본 구조에서 함수명 옆 괄호를 이용하여 함수 안에서 매개 변수를 이용한 함수도 만들 수 있다.
필요한 개수만큼 매개 변수를 줄 수 있고, 쉼표(,)를 이용하여 구분한다.
function 함수명(parameter1, parameter2, .... parameterN){
//함수 내용
}
함수 호출
사용한 함수를 필요에 따라 호출하여 쓸 수 있다. 선언한 함수 이후에 호출을 해야 한다.
//함수 선언//
function 함수명(parameter1, parameter2, .... parameterN){
//함수 내용
}
//함수 호출//
함수명()
함수의 가장 큰 역할인 중복 코드 방지를 위하여 함수 호출 시 같은 과정을 반복하는 코드 중 바꾸고 싶은 값('인자')을 바꿔서 호출하면 쉽고, 간단하게 바꿔서 호출할 수 있다. parameter의 종류와 argument 값의 위치(순서는) 동일해야 원하는 값이 나온다.
함수명(Argument1, Argument2, Argument3, ..... , ArgumentN)
함수 선언과 호출 예시
function classMate(name, age){
console.log("name: " + name +", age: " + age)
}
classMate("kim", 21)
classMate("Lee", 25)
classMate(29, "Baek") //에러는 아니지만 원하는 결과값이 아니다.
지역 변수와 전역 변수
지역 변수는 함수의 코드 블럭(스코프, 중괄호 안)에서 선언한 변수이고, 전역 변수는 코드블럭 밖에서 선언한 변수이다.
// 지역 변수 message //
function showMessage (){ //함수 선언
let message = "Hello!!" //지역 변수 message
console.log(message)
}
showMessage () // 함수 호출
console.log(message) //Error : 지역 변수인 message는 코드블럭 밖에서 호출 불가
//전역 변수 userName //
let userName = "kim"
//함수 선언
function showMessage (){
let message = "Hello, " + userName
console.log(message)
}
showMessage () //함수 호출
//전역 변수 userName //
let userName = "kim"
//함수 선언
function showMessage (){
userName = "Lee" //함수 내부에서 수정 가능
let message = "Hello, " + userName
console.log(message)
}
showMessage () //함수 호출
지역 변수와 전역 변수를 쉽게 이해하기 위해서는 틴팅(썬팅)처리 된 유리창을 떠올리면 쉽다.
안에서는 밖이 보이지만(지역변수는 전역 변수를 사용할 수 있지만) 밖에서는 안이 안 보인다(전역 변수는 지역변수를 사용할 수 없다.)
Return
함수를 호출하면 특정한 값을 반환한다. 그 반환을 원하는 곳에서 하기 위해 return 키워드를 이용하여 작성할 수 있다.
return 은 함수 내에 어디서든 위치할 수 있고, 코드 진행상황이 return을 만나게 되면 그 즉시 그 함수는 종료되고, 그 값을 반환한다.
함수를 작성하면 코드 블럭 내에 return 키워드를 적지 않아도 기본 값으로 적용되어 있다.
return은 함수 내에 코드 블럭마다 return을 주어 블럭마다 원하는 값을 반환받을 수 있다.
return 코드를 만나면 함수가 종료되기 때문에 원하는 위치를 잘 파악하여 코드를 작성하여야 한다.
function showMessage (){
console.log("Hello!")
return //( 반환 값 )//
console.log("hello!") //return에서 함수가 종료되었기 때문에 뒷 부분은 출력이 안된다.
}
//함수를 호출 했을 떄 함수의 값을 return 뒤에 값을 써준다.
function getSum (x, y){
return x+y
}
//return 여러번 사용//
function checkAge(age) {
if (age >= 18) {
return true;
} else {
return confirm('보호자의 동의를 받으셨나요?');
}
}
'🟨 JavaScript 🟨' 카테고리의 다른 글
JavaScript - 구조 분해 할당 (0) | 2022.12.12 |
---|---|
JavaScript - 자주 쓰이는 배열 메서드 (Array Method) (0) | 2022.12.12 |
JavaScript - 배열 기초 (0) | 2022.10.31 |
JavaScript - 조건문 if-else if (0) | 2022.10.31 |
JavaScript - 논리연산자 (0) | 2022.10.31 |
댓글