자바스크립트에서 함수는 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 |