JS | 함수(선언적 함수/익명 함수)

2022. 12. 28. 15:25·JavaScript

자바스크립트에서 함수는 1급 최상위 함수입니다. (함수에서 모든 문법들이 다 있다고 보면 된다.)

객체지향 프로그래밍 언어에서 메서드의 기능보다 훨씬 더 많은 기능을 한다.

자바스크립트는 함수가 주 사용목적이다.

 

JS 함수는 크게 2개로 나누어진다.

이름이 있는 함수(선언적 함수)

이름이 없는 함수(익명 함수)

 

선언적 함수

-반환 유형은 없으며 매개변수도 적지 않아도 된다.

-매개 변수는 데이터 타입을 적지 않는다.

-return이 없으면 자동으로 undefined가 반환된다.

 

function name (매개변수) {

//return true;

}

화면상에서 함수를 위쪽에 생성해놔야 아래쪽에서 함수를 호출할 수 있다.

위쪽에 꼭 선언이 먼저 들어가야한다.

단, 선언적함수는 당겨 호출하기가 가능하다. 이걸 호이스팅이라고 한다.

함수의 선언부가 아래쪽에 있더라도 위쪽에서 호출이 가능하다.

 

compute();
function compute() {
var x = 100
var y = 10
var result = x / y;
console.log(result);
}
//compute();

 

선언적 함수는 함수를 변수에 저장할 수 있다.

함수를 a에 저장할 때 변수 선언 이후에 호출해야합니다.

 

function method3()  {

     alert("method3 실행");
}
var a  = method 3;
a(); //호출

 

func1(); //호이스팅 (선언적함수에서 가능)
var result = func2(); //함수의 return
func3(1,2,3);

function func1(){
    console.log('func1 실행');
}

func1();

function func2(){
    console.log('fun2 실행');  //func1 실행
    return 'func2 반환';
}
 console.log(result);//func2 반환

function func3(a,b,c) {
    console.log('func3 실행');
    return a + b + c;
}
console.log(func3(1,2,3)); //6
        
//함수를 변수에 저장할 수 있습니다.

var a = func1();// 이건 반환값을 넣어준다는 말
console.log(a);  //undefined (fun1함수에 반환값이 없으므로)

var a = func1;//함수를 a에 넣어주겠다.
console.log(a);/*ƒ func1(){
             console.log('func1 실행');
                        }*/
        
a(); //func1 실행

 

익명 함수

이름 없는 함수를 변수에 넣는다.

당겨쓰기는 익명함수에서 사용할 수 없다.

반드시 아래쪽에서 호출을 해줘야한다.

//1st - 선언적 함수
// function func1(){

// }
// var a = func1;

//익명 함수
// a(); //에러
var a = function() {
    console.log('a함수'); 
}
a();

var b = function(x, y){
    return x + y;
}
var result = b(1,2);
console.log('b함수:',result);

console.log('-----------------');

//1.익명함수로 변경해보기
function method1(x) {
   if(x%2 == 0) {
   return '짝수';
} else {
   return '홀수';
}
}

var c = function(x) {
return x % 2 == 0 ? "짝수" : "홀수";
}
console.log(c(1)); //홀수

//2.매개변수를 3개 받아서 평균을 반환하는 익명함수를 선언.
var d = function(a,b,c){
   return (a+b+c) / 3;
}

console.log(d(1,2,3)); //2

 

 

 

'JavaScript' 카테고리의 다른 글

JS | 함수(화살표 함수)  (0) 2022.12.28
JS | 함수(즉시실행 함수)  (0) 2022.12.28
JS | 조건문  (0) 2022.12.28
JS | 배열  (0) 2022.12.28
JS | 연산자  (0) 2022.12.28
'JavaScript' 카테고리의 다른 글
  • JS | 함수(화살표 함수)
  • JS | 함수(즉시실행 함수)
  • JS | 조건문
  • JS | 배열
개발 공부
개발 공부
  • 개발 공부
    개발 공부
    개발 공부
  • 전체
    오늘
    어제
    • 전체보기 (163)
      • 프로젝트 (1)
      • JavaScript (46)
      • Node.js (3)
      • Next.js (5)
      • React (17)
      • NoSQL (0)
      • HTML,CSS (3)
      • CS (6)
      • Java (35)
      • Spring (6)
        • Spring의 정석 (1)
      • Spring boot (1)
      • MySQL (1)
      • 리눅스 (16)
      • JSP (9)
      • AWS (0)
      • git (2)
      • 알고리즘 (1)
      • ect (7)
      • Project (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    자바
    Java
    Java의 정석
    오블완
    자바의 정석
    티스토리챌린지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
개발 공부
JS | 함수(선언적 함수/익명 함수)
상단으로

티스토리툴바