NOW OR NEVER

드림엘리 : Javascript 기초 - 2. 함수 본문

Front-End/Javascript

드림엘리 : Javascript 기초 - 2. 함수

LAURA 2021. 12. 27. 22:29
반응형

함수

  • 프로그래밍을 짤 때 무언가 반복적으로 계산되는(수행되는) 로직들이 있을 때 함수로 만듦. 왜냐하면 함수로 만들면 재사용이 가능하기 때문이다.

함수 선언

  • function 함수이름(인자){기능 수행 영역(code block)}
  • 함수 선언시 function 키워드 사용
  • {} 즉 코드 블럭을 수행하는 것들을 함수이름으로 가리키게 됨

함수 이름

  • 함수 자체를 가리키는 것
  • 함수를 가리키고 있는 주소(refernce)를 가지고 있다
  • 함수 이름 지정 가능
  • 가능하면 의미있는 이름으로 설정
  • 변수에서 이름을 원하는대로 지정하는 것처럼 함수 또한 원하는대로 이름 지정 가능
  • 짧고 간결하지만 의미있는 이름으로 설정

인자

  • 함수를 호출하는 사람으로부터 필요한 data를 받아오기 위해서 그리고 필요한 data를 받아올 때 함수 내부에서 조금 더 이해하기 쉬운 이름을 부여(정의)해 놓는 것이다.
  • 외부에서 어떤 값을 받아올 것인데 그 받아오는 data를 변수라는 이름을 통해서 접근한 것처럼 인자에서도 인자를 통해서 block 안에서 접근이 가능하다.
  • 함수를 작성하는 시점에는 인자에 어떤 data가 들어갈지 알 수 없다.

함수의 object 특성

  • 함수도 object 중 하나
  • 함수가 들어있는 reference(함수, 즉 {}가 정의되어 있는 곳) 같은 것이 함수 이름의 메모리에 들어있다. 즉 함수이름은 함수가 정의되어 있는 곳을 가리키고 있다.
  • 변수에 함수이름을 할당하게 되면 함수이름이 가리키고 있는 reference가 복사되어 변수에 할당되게 된다.(object와 똑같음) 결국은 똑같은 함수를 가리키게 된다.
  • 함수 이름을 변수에 할당하거나 또는 다른 함수의 인자로 전달한다는 것은 함수 이름이 가리키고 있는 함수의 reference를 해당하는 곳에 전달하는 것과 동일하다.

함수 호출

  • 함수 선언시 인자 작성하지 않을 경우 호출할 때 아무리 input을 많이 전달해도 그 input을 무시하고 실행한다.(input을 받지 않는다)
  • 함수를 호출하는 사람이 인자에 어떤 data가 들어갈지 결정
  • 함수를 호출할 경우 ()를 이용해서 필요한 data가 있다면 data를 전달하면 된다.
  • 인자가 있는 함수인데 함수 호출시 input data 넣지 않을 시 그 인자는 undefined로 정의되게 된다.
Comments