1) 함수명은 자유롭게 정할 수 있음
2) 매개변수는 없을수도, 한개 혹은 그 이상일 수 있음. 쉼표로 구분
3) {} 중괄호 내부는 함수의 실행코드를 작성
4) 함수명 뒤에 ()붙여서 호출 가능 매개변수가 필요하다면 ()안에 넣어줌
ex) sayHello('Mike');
function showErorr(){ alert('에러발생'); } showErorr();
function sayHello(name){ const msg = `Hello, ${name}`; console.log(msg); } sayHello('Mike'); // "Hello, Mike" sayHello('Tom'); // "Hello, Tom" - 혹은 매개변수를 모를 때 function sayHello(name){ let msg = `Hello`; if(name){ msg += `, ${name}`; } console.log(msg); } sayHello(); // "Hello" sayHello(Mike); // "Hello, Mike" : 매개변수가 없을 때 함수 실행 시 undefined 반환 - if에 undefined값이 들어가면 false로 반환되기 때문에 let msg = 'Hello'로 적용되어 log에 찍힘
function sayHello(name){ let msg = `Hello`; if(name){ msg += `, ${name}`; } console.log(msg); } console.log(msg) // 에러!- 변수를 함수 외부에서도 사용하고 싶다면 함수 외부로 빼줘야함
let msg = `Hello`; function sayHello(name){ if(name){ msg += `, ${name}`; } console.log(msg); } console.log(msg) // "Hello"
- 3행 msg는 전역변수 - 7행 msg는 지역변수 - 함수 내부에서 let으로 전역변수와 동일한 이름으로 선언 가능하고 서로 간섭받지 않음
- 9행 호출이 undefined으로 반환되는 이유
: 매개변수로 받은 값은 복사된 후 함수의 지역변수가 됨
Tip
- 전체 서비스에서 공통으로 바라봐야하는 변수를 제외하고는 지역변수를 쓰자
- 전역변수가 많아지면 관리 힘들어짐
- 함수에 특화 된 지역변수를 사용하자