꾸준한 개발자

계속적인 성장을 추구하는 개발자입니다. 꾸준함을 추구합니다.

계속 쓰는 개발 노트

javascript 2

호이스팅

호이스팅이란 변수나 함수를 스코프 상단으로 끌어올리는 기술입니다. console.log(a); // undefined var a = 1; 변수 선언보다 참조하는 문이 코드 순서 상 앞에 있지만, 에러가 발생하지 않고 참조 결과가 undefined로 나옵니다. 호이스팅이 일어났기 때문에 위와 같은 결과가 나옵니다. 변수 생성 단계 변수는 선언-초기화-할당, 3단계를 걸쳐 생성됩니다. 코드 실행 전 선언과 초기화가 이루어집니다. 선언 단계에서 데이터 메모리에 변수를 저장하고 초기화 단계에 undefined를 할당합니다. 그 후 코드가 실행되면서 할당하는 문에서 해당 데이터 값을 할당하게 됩니다. var 키워드로 선언된 변수와 let, const로 선언된 변수의 차이점이 있습니다. var 키워드로 선언된 변수..

this

this가 어떤 값에 바인딩 되는지는 실행 컨텍스트가 생성될 때 결정됩니다. 즉 함수를 호출할 때 결정된다 볼 수 있습니다. 그러다보니 함수를 어떻게 호출하는지에 따라 바인딩되는 값이 달라지게 됩니다. 전역 스코프에서 쓰이는 this 전역 스코프에서 쓰이는 this는 전역 객체에 바인딩 됩니다. 브라우저 환경에서는 window, node 환경에서는 global에 바인딩 됩니다. 메서드로서 호출될 때 메서드 안에 있는 this 함수와 메서드를 구분할 수 있는 것은 독립성에 있습니다. 함수의 경우 독립적으로 실행되는 반면, 메서드의 경우 자신을 호출하는 객체에 관한 동작을 수행합니다. var func = function (param) { console.log(this, x); }; func(1); var o..