본문 바로가기

tech-interview

(2)
Javascript Closure (클로저) Javscript Closure(클로저)란? 독립적인 변수를 가리키는 함수 Closure (클로저)의 원리 함수A가 존재하고, 함수 A에서 선언된 1이라는 변수가 존재, 또한 함수 A 내부에 B라는 내부함수가 존재하고 B라는 내부함수에서 A함수에서 선언된 1이라는 변수를 참조, 이때 내부함수 B가 외부로 전달될 경우, A의 실행이 종료되어도 변수 1이 사라지지 않는다. ~~ A의 실행이 종료되어도 변수 1이 사라지지 않는다 -> 사이드 이펙트 실행이 종료되어도 사라지지 않는다는 것은 메모리에 계속 남아있음을 뜻하고 이는 메모리 누수 현상이 발생할 수 있음을 뜻함, 또한 메모리에 계속 남아있기에 필요에 의해 참조가 가능 메모리 누수란? 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상 Closur..
Javascript Hoisting(호이스팅) Hoisting(호이스팅) 이란? 함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 유효범위의 최상단에 선언하는 것 변수의 경우 var로 선언한 변수만 호이스팅이 적용된다. (let, const 변수는 적용되지 않음) 예시 적용 전 console.log("hello"); var myname = "KIM"; let myname = "KIM222"; 적용 후 var myname; console.log("hello"); myname = "KIM"; let myname = "KIM222"; Hoisting 함수 적용 함수의 선언문은 적용되나, 표현식은 적용되지 않는다. 적용 전 foo(); foo2(); function foo() { console.log("TEST"); } var foo2 = function..