가장 기본적인 방식
function hello(name) {
alert(name+"님 안녕하세요")
}
-> 호이스팅이란 문제
추후 정리 예정
📍호이스팅이란
console.log(foo()); // ✅ 정상 실행 (호이스팅 O)
function foo() {
return "Hello, World!";
}
const던 let이던 상관X
이름 없는 함수 -> 익명함수
함수 선언식과 사용방법은 똑같음
const hello = function(name) {
alert(name+"님 안녕하세요")
}
const hello = (name) => {
alert(name+"님 안녕하세요")
}
✅ 함수 선언식(function foo() {})
✔ 함수가 항상 유효해야 하는 경우 (예: 유틸리티 함수)
✔ 전역적으로 사용할 함수
✅ 함수 표현식(const foo = function() {})
✔ 변수에 함수 할당이 필요할 때 (예: 이벤트 핸들러, 콜백 함수)
✔ 익명 함수 사용이 필요한 경우 (예: map(), filter(), setTimeout())
✔ ES6 이후 권장되는 방식 (const, let 사용)
💡 HTML에서 onclick="myFunction()"
을 사용하고, JavaScript에서 const myFunction = function() {}
로 정의하면 동작하지 않음. (+script 태그 내에서 defer + module)
-> 그냥 쓰면 동작됨
💡 이유: const로 선언한 함수는 호이스팅되지 않으며, window 전역 객체에 등록되지 않기 때문.