공부 시작하며 자바스크립트에서의 자기 자신을 가리킬 수 있는 this는 사용하는 방식에 따라 가리키는 대상이 다릅니다. 그 원리와 어떠한 상황에서 어떻게 동작하는지 알아보기 위해서 공부를 하게 되었습니다. 책 모던 자바스크립트 Deep Dive를 통해서 공부하였습니다. 자기 자신을 참조할 수 있는 객체(object) 다음 원의 반지름과 지름의 정보를 담고 있는 circle 객체가 있습니다, const circle = { radius: 5, getDiameter() { // 자기 자신인 circle을 참조하고 있습니다. return 2 * circle.radius; }, }; console.log(circle.getDiameter()); // 출력 : 10 위의 circle 객체에서 지름을 반환하는 get..
공부를 시작하며 앞으로 공부할 내용인 클로저, 실행 컨텍스트와 관련이 있으며 이를 이해하는데 어려움이 없도록 공부를 하게 되었습니다. 책 모던 자바스크립트 Deep Dive를 통해 공부하였습니다. 스코프 스코프(scope)는 자바스크립트를 포함하여 다른 프로그래밍 언어에서도 있는 개념이지만 자바스크립트의 스코프는 다른 언어들과 다른 특징이 있습니다. 변수 선언문에서 var의 변수 선언문과 let, const 변수 선언문이 다르게 동작하는것을 하나의 예시로 들 수 있습니다. 다음과 같이 var은 함수 단위의 유효범위를 가집니다. var test1 = 1; console.log("1:", test1); // 출력 : 1 if (true) { var test1 = 2; console.log("2:", test..
공부를 시작하며 "use strict"; 가 엄격 모드를 사용한다! 라는 정도로만 알고 있고, 이 모드를 사용함으로써 정확하게 동작하는것이 무엇인지 알지 못했습니다. 이 공부를 통해서 strict mode 가 어떠한 특징을 가지고 있는지를 배워갑니다. 공부는 책 모던 자바스크립트 Deep Dive를 통해 진행하였습니다. strict mode strict mode, 엄격 모드는 자바스크립트 언어의 문법을 엄격하게 적용시켜 오류가 발생할 가능성이 높거나 자바스크립트 엔진의 최적화 작업에 문제를 일으킬 수 있는 코드에 명시적인 에러를 발생시킵니다. 다음의 예제를 통해서 이 부분에 대해서 설명하겠습니다. function foo() { x = 1; } foo(); console.log(x); 위의 예제에서 con..
◆ 변수의 선언 (모던 자바스크립트 Deep Dive 책을 통해 공부한 글입니다.) ES6가 나오기 이전에 변수를 선언하기 위해서는 var을 사용해야 했습니다. var로 선언한 변수는 어떠한 문제점이 있고 특징이 있는지 살펴보고 let 과 const에 대해서 설명합니다. ◆ var 변수의 선언 var은 다음과 같이 변수를 선언합니다. 여러 타입을 변수에 넣을 수 있는데, 다음 예제와 같이 function과 같은 자바스크립트에서 이미 사용되고 있는 키워드는 변수 이름으로써 사용이 불가합니다. var foo = 'this is foo'; var one = 1; // 다음과 같은 function 키워드는 자바스크립트에서 함수로써 사용되고 있는 // 키워드입니다. 따라서 변수 이름으로 지정할 수 없습니다. va..