Function은 자바의 꽃이라 불릴만큼 중요한 문법이다. 대체로 프로그래밍을 말할 때 입출력 프로그래밍을 빼놓을 수 없듯이 이 Function이 바로 입출력의 대표적인 예이다.
파라미터를 넘길 때 타입이 정해지지 않아 object 타입으로 넘긴다.
파라미터를 넘길때 초기값을 할당하여 넘길 수 가 있다. (from = ‘unknown’과 같은)
파라미터에 ...가 붙어있으면 배열형태의 파라미터
“밖에서는 안을 볼 수 없지만 안에서는 밖을 볼 수 있다”
지역변수 : 블록안에 서 선언된 함수
전역변수 : 함수밖에서 선언된 함수
함수에는 return 이 있다. 따로 명시되어있지 않아오 return undefined가 생략된 것.
여러 조건에 의해 Return이 될 때는 함수 상단에 조건이 맞지 않으면 빠르게 Return을 하여 통과된 즉, 조건이 맞는 경우만 함수실행이 될 수 있도록 한다.
함수를 변수에 할당하는 방법과 함수의 선언 방식의 차이점은 바로 ‘호이스팅’과 관련이 있다.
만약 저 위에서 function에 name을 지정하고 function위에서 해당 name을 호출하게 되면?
정상 실행이 된다.
하지만, 함수를 변수에 할당하고 저 위처럼 print를 제일 윗 상단에 호출하게되면?
에러가 발생이 된다.
이는 ‘호이스팅’과 관련이 있으며 함수선언과 동시에 제일 위로 올려주기 때문이다.
함수에 네이밍을 정하는 이유 : 디버거시에 Stack Trace가 가능함
화살표 함수. 간단하게 한줄로 표현할 수 있는 함수이다.
함수명이 필요없고 블록도 필요없이 ⇒ 하나로 표현이 가능하다.
함수 선언과 동시에 바로 실행이 가능하게 하는 것 함수 밖으로 ( ) 로 감싸고 ();로 호출한다.