렉시컬 스코프는 무엇인가요?
렉시컬 스코프란? 정적 스코프(Static scope) 라고도 불리는데 함수 호출이 아닌, 선언의 위치에 따라 결정되는 것을 의미합니다. 예시 var x = 100; function one() { var x = 50; two(); } function two(){ console.log(x); } one(); // 100 two(); // 100 보통 one() 에서 50이 출력되고, two() 에서 100이 출력될 거라고 생각하는데 JavaScript는 렉시컬 스코프(정적 스코프)를 따르기 때문에 전역 변수 x의 값을 따른 것이죠. 2번째 예시 var x = 100; function two(){ console.log(x); } function one() { x = 50; two(); } two(); // 100 one(); // 50 하지만 one() 함수 내에서 재선언이 아닌, 값의 재할당을 한다면 50이 출력되는 것을 볼 수 있습니다. ...
this 키워드에 대해 알아봅시다.
(이 포스팅은 javascript 기준으로 작성되었습니다.) this 키워드란? this 키워드는 현재 내가 속해있는 객체를 가리킵니다. const hello = { name : "이름", world : function(){ return this.name} } console.log(hello.world()); // 출력값 : 이름 브라우저에서 this function test(){ return this; } console.log(window === test()); // true 위 코드를 브라우저에서 실행해보면, true가 출력됩니다. 윈도우 로컬 환경에서 실행해보면, 글로벌 객체가 출력됩니다. 메소드 내부함수에서 this const test = { hello: function() { console.log(this); // test function hi() console.log(this); // window } } 메소드의 내부함수에서 this를 출력해보면 window가 나옵니다. ...