함수선언문

fucntion ~
이름이 없는 함수를 만들고(funciton()),
그 이름없는 함수에 변수를 선언(let ~ = function())
--> 함수 표현식

함수선언문 vs 함수표현식
[다른점 : 호출타이밍]

함수 선언문은 전체영역에 대해 커버하지만,
함수 표현식 (let 이후)에 대해서는 순차적으로 실행되어 let이 선언하는 구역에 대해서만 실행

함수선언문은 어디서든 호출 가능

[함수선언문]
sayHello();
function sayHello(){
// 함수실행문}
-- 동작


** 인터프리터 언어(Interpreted Launguage)
위에서 아래로(위 → 아래)로 순차적으로 코드를 실행하는 언어
그러나 함수의 경우, 자바스크립트의 알고리즘으로 인하여 코드상 설정된 모든 함수에 대해 선제적으로 실행

*** 호이스팅(Hoisting)
함수는 실행할 수 있는 영역이 아니라, 전체 영역에 대해 커버

**** 대부분 상황에서는 함수 선언문이 편함. 

[화살표 함수]
let add = function(num1, num2){
 return add+1add2;
}
치환 → let add = (num1,num2) => {
  return num1+num2;
};

실행문이 리턴문이며, 코드 본문이 한줄이므로 대괄호를 중괄호로 변경 가능
let add = (num1,num2) => (
  num1+num2;
)
리턴문이 한줄일 경우, 괄호도 생략 가능
let add = (num1,num2) => num1 + num2;

실행문이 리턴문인데, 함수 인수가 하나일 경우, 인수 괄호 생략 가능
let sayHello = name => `Hello, ${name}`;

인수가 없거나, 리턴문에 여러줄의 코드가 있을 경우 
괄호 생략 불가

 

복사했습니다!