JS
221228 JS 함수-선언적 함수, 호이스팅
주영재
2022. 12. 28. 15:07
함수
자바스크립트에서 함수는 1급 최상위 함수임
객체지향 프로그래밍 언어에서 메서드의 기능보다 훨씬 더 많은 기능을 한다.
js는 함수가 메인. 함수를 잘 해야 함.
함수 종류
-선언적 함수(이름이 있는 함수)
-익명함수(이름이 없는 함수)
선언적 함수
function name(매개변수) {
//return true;
}
접근제어자, 반환타입 없음
매개변수도 적지 않을 수 있으며, 매개변수 데이터타입도 적지 않음
리턴도 적어도 되고 안적어도 됨. 자동으로 undefined 반환
선언적 함수는 함수선언 이전에 호출하여도 에러를 발생시키지 않음
당겨서 호출이 가능(호이스팅)->선언적 함수에서만 가능하다.
선언적 함수를 변수에 저장할 수도 있다.
function method3(){
alert("method3실행");
}
var a=method3;
a();
★선언적 함수를 a에 저장할 때 변수 선언 이후에 호출해야 함!
변수에 저장할때 =함수()가 아니라 =함수, 이후 변수();로 호출하는것.
var a=method();가 아니라 var a=method;로. 이후에 a();를 씀
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
func1();//호이스팅(선언적함수에서 가능)
var result=func2;//함수의 return
console.log(result());
console.log(func3(1,2,3));
function func1(){
console.log('func1 실행');
}
function func2(){
console.log('func2실행');
return 'func2반환';
}
function func3(a, b, c){
console.log('func3 실행')
return a+b+c;
}
//함수를 변수에 저장할 수 있습니다.
var a = func1;
console.log(typeof a);
console.log(a);
a();//a의 호출
</script>
</body>
</html>