-
[2019.03.01]javascript에서 함수 선언에 따른 차이점.개발 블로깅/Javascript 개념 2019. 3. 1. 23:49
javascript에서 함수를 선언하는 방식은 기본적으로 두 가지가 있다. (아마 더 있을 수도 있지만..)
- 변수에 함수를 생성하여 할당하는 방법
- 그냥 함수를 선언하는 방식이다.
# 변수에 함수를 할당하는 방법
123var addValue = function(a, b){return a + b;}cs # 일반적으로 함수를 선언하는 방법
123function addValue(a, b){return a + b;}cs 위 두 코드와 같이, 사용하려는 함수를 생성하는 방법이 두 가지가 있다.
하지만 역시 이 두 가지에 대한 차이점이 있다는 것!
우선 '변수에 함수를 할당하는 방법'은, 해당 함수를 사용하기 전에, 먼저 그 함수가 위에 선언이 되어야 한다.
1234567addValue(1, 2); // <- error!!var addValue = function(a, b){return a + b;}addValue(1, 2); // <- 3cs 변수에 함수를 할당하는 방식, 즉 함수 자체가 변수이므로 변수를 먼저 생성을 해 주어야 사용을 할 수 있기 때문인 것 같다.
이와 반대로, '일반적인 함수를 선언하는 방법'은 순서와 상관없이 그냥 사용하면 된다.
1234567addValue(1, 2); // <- 3function addValue(a ,b){return a +b;}addValue(1, 2); // <- 3cs 위 코드는 변수까지는 아니고, 그냥 함수로 보기 때문에 가능한 것 같다.
우선 두 코드의 사용 방식으로만 판단하면, 순서에 제약을 받지 않는 '일반적인 함수를 선언하는 방법'이 확실히 더 편해보인다.
그런데 후자의 방식도 정말 많이 쓰이는 방식이다. 함수 선언한 코드들을 제일 상단에 배치함으로써 코드의 간결함을 유지할 수 는 있을 것 같다.....만!
분명히 이러한 이유 말고, 굳이 저 방식을 사용하는 다른 이유가 있을 것 같다...조금 더 찾아봐야겠다...
------------------------------------------------------------------------------------------------------------------------
오늘 온라인 세션 중에 두 함수의 사용성을 물어봤었다. 그런데 차이점의 포인트는 이것이였다!
# 변수에 함수를 할당하는 방법
123var addValue = function(a, b){return a + b;}cs 이 방식은, addValue에 다시 function을 정의할 수 있다는 것!!
함수를 다시 작성하여 쓸 수 있다는 포인트가 다른 것이다아아아아아아!!
반응형'개발 블로깅 > Javascript 개념' 카테고리의 다른 글
[2019.04.23] 자바스크립트 event Loop 개념 (0) 2019.04.23 [2019.04.08] __proto__, prototype, constructor 관계 (0) 2019.04.08 [2019.02.28] javascript의 prototype 개념, 그리고 this. (0) 2019.02.28 [2019.02.27] for문 사용에 주의해야 할 점(?) (0) 2019.02.27 [2019.02.26] Test Builder 작성 (0) 2019.02.27