오답노트
[JS] 호이스팅 (Hoisting) 과 함수 매개변수 본문
함수 정의하는 법
함수는 생성자 함수 방법, 선언적 함수 방법, 리터럴 함수 방법이 있다.
var f1 = new Function("x","y","return x+y") // 생성자 함수 방법
console.log(f1(7,5))
function f2(x,y){ // 선언적 함수 방법
return x+y
}
console.log(f2(7,5))
var f3 = function(x,y){ // 리터럴 함수 방법
return x+y
}
console.log(f3(7,5))
호이스팅 (Hoisting)
인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미한다. var로 선언한 변수의 경우 호이스팅 시 undefined로 변수를 초기화한다. 반면 let과 const로 선언한 변수의 경우 호이스팅 시 변수를 초기화하지 않는다.
console.log(a) // undefined -> 실행시 a를 할당했지만 초기화 되지 않은 상태
var a = 1
console.log(a) // 1
var a = 'a'
console.log(a) // a
함수 매개변수
보통 언어에서 함수에서 정한 매개변수는 모두 채워야한다. 하지만 JS는 꼭 그렇지 않아도 실행된다.
function func(a,b,c){
console.log(a)
console.log(b)
console.log(c)
}
func(100,200,300) // 100 200 300
func(100) // 100 undefined undefined
func(100,200,300,400,500) // 100 200 300
'Web' 카테고리의 다른 글
[Webpack] Webpack이 뭐지..? (6) | 2024.10.21 |
---|---|
[JS] 함수 실행과 컨텍스트 (0) | 2022.11.07 |
[JS] JavaScript 타입과 변수 (0) | 2022.11.07 |