<script>
func();
function func() {alert('function A')};
function func() {alert('function B')};
</script>
일반적인 함수의 형태(선언적 함수)는 아래와 같이 함수에 sum이라는 이름을 붙여 재사용 할 수 있게 만듦.
function sum(a,b){
var m = a + b;
return m;
}
var sumanswer = sum(1,2);
console.log(sumanswer);
이에 반해 익명함수의 경우는 아래와 같이 함수(function)에는 이름이 없고 함수에 바로 (a,b)라는 인수만 지정됨.
var sum = function(a,b){
var m = a + b;
return m;
}
var sumanswer = sum(1,2);
console.log(sumanswer);
위의 익명개념 함수에서 확장 된 것이 즉시실행함수
이 즉시실행함수는 변수 안에 함수와 인수값까지 몽땅 다 집어넣어서 사용하는 것
var sum=(function(a,b){
var m = a + b;
return m;
})(1,2);
console.log(sum);
출처 - https://osxtip.tistory.com/635
선언적 함수와 익명함수의 차이는 웹 브라우저가 script 태그 내부의 내용을 위에서 부터 한줄 씩 읽기 전에 선언적 함수부터 먼저 읽는다.
따라서 아래의 코드를 실행하면 오류가 발생한다.
<script>
func();
var func = function () {alert('function A')};
var func = function () {alert('function B')};
</script>
익명함수를 저장한 변수를 선언하기 이전에 그 변수를 사용했기 때문이다.
따라서 오류가 나지 않게 하려면 아래와 같이 작성해주면 된다.
'반영훈 > 웹 개발' 카테고리의 다른 글
[React] 프론트엔드 라이브러리 (0) | 2020.08.18 |
---|---|
[JS]함수 스코프 개념 이해 (0) | 2020.08.13 |
[JS] 프로토타입과 클래스 (0) | 2020.08.12 |
[JS] 배열 내장함수 concat, join, reduce (0) | 2020.08.12 |
[JS] 배열 내장함수 filter, splice, slice (0) | 2020.08.12 |
댓글