궁금증 모음

김현주·2021년 2월 10일

우아한테크코스

목록 보기
2/6
post-thumbnail

1. 함수는 왜 하나의 역할을 해야할까? 여러 역할을 하면 안되는 이유는 무엇일까?

  • 애플리케이션이 커진다면 함수를 재사용할 일이 생길 수 있다. 그런데 만약 함수가 함수이름과 달리 다른 역할도 하게 되면 재사용 할 때 버그가 발생할 수 있다. 따라서 함수는 한가지의 역할을 하되, 재사용성을 고려하여 naming역시 일반적인 인자를 받을 수 있게 지으면 좋다.
  • 함수 이름과 다른 역할을 하게되면 다른 개발자가 코드를 읽을 때 이 함수가 정확히 어떤 역할을 하는지 헷갈릴 수 있다.

2. 변수명 앞에 '$'는 어떤 때에 붙이는 걸까?

3. 함수 표현문 vs 함수 선언문

  • 이 궁금증의 경우, 함수를 표현할 때 fuction A( ) { }의 표현법을 사용할 지, const A = ( ) => { } 의 표현법을 사용할지에 대해 pair와 고민하다가 갖게 되었다. 그러면서 리뷰어의 도움을 받아 함수 표현문함수 선언문이 있다는 것을 알게 되었다.

함수 선언문

function test() { 
  // 함수 내용
}
  • 일반적인 프로그래밍 언어에서 함수를 선언하는 것과 비슷하다.
  • 함수 선언문은 Hoisting에 영향을 받는다. 즉, 코드를 구현한 위이와 관계없이 브라우저가 자바스크립트를 해석할 때 맨 위로 끌어올려준다.

함수 표현문

var test = function test() {
  // 함수 내용
}

const test2 = () => {
  // 함수 내용
}
  • 함수 표현문은 변수 값에 함수를 담는 표현 방법이다.
    -> 유연한 자바스크립트 언어의 특징을 활용했다.
  • 장점
    • closure를 사용한다.
    • callback을 사용한다. (다른 함수의 인자로 함수를 넘길 수 있다.)
  • 함수 표현문은 Hoisting에 영향을 받지 않는다. 따라서, 선언과 호출 순서에 따라 정상적으로 함수가 실행되지 않을 수 있다.

출처 https://gmlwjd9405.github.io/2019/04/20/function-declaration-vs-function-expression.html

profile
우당탕탕 주니어 프론트엔드 개발자입니다

0개의 댓글