Programming Language/Javascript

[Javascript]함수

seong's log 2024. 1. 11. 01:04

- '호출될 수 있는 코드 조각'

- 함수를 호출해야 사용가능

- 함수 호출시 반드시 함수명 뒤에 소괄호()

- 함수 안에서 선언한 변수는 함수 안에서만 사용 가능

- 선언식은 함수 정의보다 호출문을 앞서 작성 가능, 표현식은 불가 

const 함수명 = function(){   //함수명이 없는 함수에 함수명을 따로 붙임
   //함수의 기능을 표현한 구문
}

=> 선언 후, 함수명은 중괄호 안의 기능 대신 사용 가능

const sayHello = function(){
    let number = 3 + 3
    console.log(number)
}

sayHello() //함수 호출!

=> 함수 호출 시, 함수의 이름 뒤 반드시 소괄호!!

 

함수명 규칙

- 함수의 기능을 적절하게 표현할 수 있는 이름을 사용

-명사보다는 동사로 된 이름을 사용(기능이기 때문)

- 소문자로 시작, 여러 단어가 섞인 경우 카멜표기법 사용

let number = 3;
let myNumber = 5;   //카멜표기법

sayHello()              //함수 호출문이 선언문보다 위에 있어도 에러발생하지 않음
//sayBye() -> 에러발생  =>  함수가 선언되기 전에 호출했기 때문  

function sayHello(){    //함수 선언식 -> 함수의 이름이 있음
    console.log("Hello")
    console.log("Hi")
    console.log("안녕")

    let hello = "문자열 헬로우"
    console.log(hello)  //함수 내부에서 선언된 변수는 함수 밖에서 사용 불가 -> 지역변수 : 해당 지역에서만 사용가능
}

sayHello()  //함수 호출 -> 재사용 용이
//console.log(hello)


const sayBye = function(){  //함수 표현식 -> 이름이 없는 함수에 함수명을 붙여줌
    console.log("good bye~")
}

sayBye()

 

return

- 함수 내부에서 함수의 부가 기능을 위해 사용 

- 함수를 통해 데이터를 반환

- 함수가 데이터를 반환하면, 함수 호출문이 데이터로 대체

- 함수를 강제로 종료

function sayHello(){  
    console.log("Hello")
    console.log("Hi")
    return;             //함수 강제 종료 -> 뒤에 데이터 기입 X
    console.log("안녕")
}

sayHello()

=> return 이후 출력되지 않음

function noReturn(){
    console.log("아무것도 반환하지 않는다!")
}

const result = noReturn()
console.log(result)  //undefined => 변수는 있지만 그 안에 데이터는 대입되지 않은 상태

function thereIsReturn(){
    console.log("무언가를 반환한다!")
    return 10;  //thereIsReturn() 호출시 반환 되는 값
}

const res = thereIsReturn()
console.log(res)

function thereIsReturn(){
    console.log("무언가를 반환한다!")
    return 10, 20, 30, 40, 50;  //마지막값 하나만 반환 => 여러개를 한꺼번에 반환할 수 없음
}

const res = thereIsReturn()	//return 50
console.log(res)	//50 출력
function thereIsReturn(){
    console.log("무언가를 반환한다!")
    return 10 50;  //값 사이의 space : 에러발생 => Unreachable code detected
}
function thereIsReturn(){
    console.log("무언가를 반환한다!")
    return 10   //10을 반환한다 + 10을 반환하면서 thereIsReturn 함수를 종료시킨다
    return 20
}

const res = thereIsReturn()
console.log(res)
function thereIsReturn(){
    console.log("무언가를 반환한다!")
    let num = 5     //지역변수에 있는 값을 내보내고 싶을 때
    return num      //변수명을 return
}

const res = thereIsReturn()
console.log(res)

 

매개변수

- 함수 생성 시 : function 함수명(변수){  => 변수 : 매개변수 역할

- 함수 호출시 전달될 데이터의 이름을 붙여주는것 

- 함수가 호출 될 때마다 매개변수의 값이 바뀔 수 있음

- 갯수의 제한이 없음

- 쉼표(,)를 이용해 변수 추가

- 인자 : 함수 호출 시 괄호()안에 들어가는 값 => 함수명(인자);

            함수 호출 시 전달하는 재료

function sayAnything(ant){ //ant : 매개변수
    console.log(ant)    //함수 호출 시 전달되는 값을 console에 출력
}
sayAnything("바쁘다 바빠") //"바쁘다 바빠" : 인자
sayAnything("현대사회")   //"현대사회" : 인자
function oddEven(number){
    if(number%2 ==1 ){
        return "홀수"
    }else{
        return "짝수"
    }
}

console.log(oddEven(10))
console.log(oddEven(7))