JavaScript 함수 작성법

Mary·2024년 6월 26일
0

JavaScript

목록 보기
3/12
post-thumbnail

1. 함수 선언식

가장 기본적인 방식

function hello(name) {
	alert(name+"님 안녕하세요")
  }

-> 호이스팅이란 문제
추후 정리 예정

📍호이스팅이란

JavaScript는 코드를 실행하기 전에 변수와 함수 선언을 메모리에 먼저 등록함. 즉, 코드의 실행 순서와 관계없이 선언 자체는 코드의 최상단으로 이동됨.
console.log(foo()); // ✅ 정상 실행 (호이스팅 O)

function foo() {
  return "Hello, World!";
}

2. 함수 표현식

const던 let이던 상관X
이름 없는 함수 -> 익명함수
함수 선언식과 사용방법은 똑같음

const hello = function(name) {
	alert(name+"님 안녕하세요")
}

3. 화살표 함수

const hello = (name) => {
	alert(name+"님 안녕하세요")
}

📍 함수 선언식과 함수 표현식, 언제 사용할까?

✅ 함수 선언식(function foo() {})
✔ 함수가 항상 유효해야 하는 경우 (예: 유틸리티 함수)
✔ 전역적으로 사용할 함수

✅ 함수 표현식(const foo = function() {})
✔ 변수에 함수 할당이 필요할 때 (예: 이벤트 핸들러, 콜백 함수)
✔ 익명 함수 사용이 필요한 경우 (예: map(), filter(), setTimeout())
✔ ES6 이후 권장되는 방식 (const, let 사용)

📍 방식 + 함수 표현식 (const myFunction = function() {}) 조합 가능할까?

💡 HTML에서 onclick="myFunction()"을 사용하고, JavaScript에서 const myFunction = function() {}로 정의하면 동작하지 않음. (+script 태그 내에서 defer + module)
-> 그냥 쓰면 동작됨

💡 이유: const로 선언한 함수는 호이스팅되지 않으며, window 전역 객체에 등록되지 않기 때문.

0개의 댓글