모던자바스크립트 "4장 변수", "13장 스코프"을 읽으며 정리하여 공부했습니다. 사실 어디서 많이 들어봤고 면접단골질문이라는 실행컨텍스트..를 공부하려고했는데, 읽다보니 var와 스코프, lexical environment에 대한 이해가 전무하다고 판단하여 변수와 스코프를 먼저 공부하게 되었다. 하핫 let, const까지 공부하면 소화할 수 있으려나... 모던자바스크립트 딥 다이브를 읽고계시다면, 책에서는 다른 챕터로 다루었지만, 변수와 스코프는 이어지는 맥락으로 설명되기 때문에 변수를 읽은 후 스코프를 읽으면 더 이해하기 좋을 것 같습니다. var의 특징과 장단점 var은 우선 ES6에서는 const,let에 밀려 사용이 권장되어 지지 않는다. var에 어떤 특성이 단점으로 나타났기 때문인가? 특성..
모던자바스크립트 딥다이브 1페이지~ 33페이지를 읽고 궁금한 내용을 찾아 공부한 내용입니다. "2.5 자바스크립트 특징" 참고 자바스크립트는 인터프리터 언어인가? 대부분의 모던 자바스크립트 엔진은 "인터프리터 장점"과 "컴파일러 장점" 을 결합하여 느리다는 인터프리터의 단점을 해결했다고 한다.*모던 브라우저에서 사용되는 인터프리터는 명시적인 컴파일 단계를 거치지 않지만, 일부 소스코드를 "컴파일"하고 "실행"한다. *자바스크립트는 런타임에 컴파일되지만 실행파일이 생성되지 않고, 인터프리터를 통해 실행되기 때문에 컴파일러 언어라고 할 수는 없다. ( * 현재 컴파일러와 인터프리터의 기술적 구분이 모호해져 가는 추세라고 합니다. 납득 완. ) 이게 무슨소리일까... 컴파일러 언어는 컴파일 단계와 실행 단계가..
둘다 cross-axis를 기준으로 정렬한다. align-content 여러줄로 요소들이 배치되어 있을 때, 이 여러줄에 대하여 적용된다. 따라서 한줄만으로 이루어져 있거나, nowrap속성이 적용되어 있다면 적용되지 않는다. justify-content와 같이 space-around 등의 속성을 사용할 수 있다. align-items 여러줄이든 아니든 상관없다. 하나의 줄 내에 있는 요소들에 적용된다.
Constructor function(생성자 함수) 객체 리터럴 다음과 같이 객체를 생성하는 방법 let user={ name: 'mike', age : 32, } 회원, 상품 등 같은 객체를 여러개 만들어야 할 때 불편하다. 생성자 함수 객체의 요소를 전달받아 객체를 생성한다. 보통 첫 글자는 대문자. 객체 리터럴보다 빠르고 간편하게 일관성있는 객체를 생산할 수 있다. 생성자 함수만 수정하면 수많은 객체를 다르게 만들 수 있다. function User(name, age){ //this={}; this.name=name; this.age=age; this.sayName=function(){ console.log(this.name); } //return this; } let user1=new User('..
국비지원을 통해 웹개발 전체과정을 빠르게 훑을 수 있는 온라인과정을 들을 수 있었다. 약 한달간 진행되는 강의였지만, 하루 최대 수강가능한 8강(국비지원이라 이렇게 정해져 있다고 함) 풀로 채워들어서 11일 남짓하게 모두 수강했다. 하루에 적으면 1시간, 많으면 3시간 정도만 투자하면 다 들을 수 있다. 일단 난 코딩을 해봤고, 대학다닐때에도 학부생 수준의 프로젝트 경험이 있기 때문에 난이도가 어렵진 않았다. 강의 자체도 깊은 이론이나 동작 원리를 설명하기 보다는, 일단 어떻게 활용하고 어떨 때 사용하는지를 위주로 수업한다. 그렇기 때문에 실용적이라는 측면에서 나는 상당히 높은 점수를 주고 싶다. 하지만 동시에, 원리를 전~혀 몰라서 동작원리가 궁금하거나, 원리를 알아야 이해가 되는 타입도 있을 것이다...
다음 영상을 보고 정리하고 살을 조금 붙였습니다. 출처: https://youtu.be/ocGc-AmWSnQ 변수와 호이스팅, TDZ(Temporal Dead Zone) 변수: let, const, var 호이스팅: 스코프 내부 어디서든 변수 선언은 취상위에 선언된 것 처럼 행동한다는 의미이다. let 으로 만든 변수는 다시 선언할 수 없다. 이미 declared되었다는 SyntaxError가 감지된다. let도 호이스팅되지만, 에러가 난다. TDZ 때문이다. let , const는 TDZ의 영향을 받는다. 이 영역에 있는 변수는 사용할 수 없다. 이를 통해, 사람은 코드를 예측 가능하고 잠재적 에러를 줄일 수 있다. var 선언전에 사용할 수 있다. 코드 하단에 var로 선언했더라고, 이미 선언된 것처..