javascript(38)
-
개발일지 (11월 2주차 회고)
Feedback - 디자인 패턴에 대한 깊이 있는 이해가 필요하다. Overview React Element를 하나로 감싸는 이유? CRA eject란? eject는 Create React APP을 통해서 애플리케이션을 설정했을 때, 감춰져있는 모든 설정들을 밖으로 추출해주는 명령어이다. 한번 실행하면 되돌릴 수 없으며, babel, webpack등의 기본적인 설정들이 추출되어 나온다. Infinite Scroll vs Virtual Scroll 무한 스크롤은 인스타그램 피드나, 페이스북 피드처럼 끝없이 스크롤 할 수 있도록 구현하는 방식으로, 웹 브라우저에서는 ScrollTop값을 이용해서 스크롤의 끝에 닿았는지를 판단한 후에 API Call을 통해 추가 함수를 로딩해오는 방식이다. 다만 수많은 피드들..
2020.11.16 -
[Javascript] 이벤트 루프(Event Loop)
Interview Section은 FrontEnd Interview Question에 대한 QnA를 다룹니다. Q. What is Event Loop? (+ What is the difference between call stack and task queue?) A. 이벤트 루프(Event Loop)는 자바스크립트가 비동기 액션들(async, await, setTimeout, mouseClick)을 처리하는 방법을 제공합니다. 자바스크립트는 콜 스택이 하나입니다. 즉, 한번에 하나의 코드만 실행할 수 있다는 의미입니다. 이 때문에 "자바스크립트는 싱글 스레드 언어이다" 라고 이야기하기도 하는데, 엄밀히 말하면 이는 코드를 실행하는 콜 스택이 하나라는 의미입니다. (실제로 비동기 액션들을 처리하는 자바스크..
2020.10.06 -
[Javascript] let, var, const
Interview Section은 FrontEnd Interview Question에 대한 QnA를 다룹니다. Q. What are the differences between variables created using let, var or const? A. var은 자바스크립트에서 기본적으로 변수를 선언하는 방식입니다. var를 이용해서 전역 스코프에 변수를 선언하면, 해당 스코프의 변수로, 함수 스코프에 변수를 선언하면 함수 스코프의 변수로 할당되게 됩니다. var를 통해 선언한 변수는 참조형이든, 원시형이든 상관없이 그 값을 바꿀 수 있습니다. 또한 var은 변수를 재선언할 수 있다는 독특한 특성을 지니고 있습니다. 따라서 다음과 같은 코드도 에러를 내뿜지 않습니다. var foo = 2; var f..
2020.10.04 -
[Javascript] 함수 호이스팅
Interview Section은 FrontEnd Interview Question에 대한 QnA를 다룹니다. Q. Explain the differences on the usage of foo between function foo() {} and var foo = function() {} A. 자바스크립트에서 함수는 객체로 간주됩니다. (정확히 말하면 일급 객체 first class) 따라서 일반 객체처럼 값으로 취급될 수 있으며 다음과 같이 변수의 값으로 할당될 수 있습니다. var foo = function(){} 함수를 위와 같이 선언하는 방식을 함수 표현식(Function Expressions)라고 합니다. 그 외에도 자바스크립트에서는 다른 일반적인 프로그래밍 언어들과 같이 함수를 선언할 수 있..
2020.10.03 -
[Javascript] null vs undefined
Interview Section은 FrontEnd Interview Question에 대한 QnA를 다룹니다. Q. What's the difference between a variable that is: null, undefined or undeclared? A. javascript에는 truthy와 falsy라는 개념이 있습니다. Boolean Context에서 false가 아니더라도 false로 인정되는 값들을 의미하는데 javascript에서 falsy로 인정되는 값은 다음과 같습니다. false, 0, -0, 0n (Bigint), "", null, undefined, NaN 조건문에 넣으면 False로 간주되는 성질때문에 null과 undefined는 종종 비슷한 것으로 해석될 수 있습니다. ..
2020.10.03 -
[Javascript] 프로토타입 상속이란?
Interview Section은 FrontEnd Interview Question에 대한 QnA를 다룹니다. Q. Explain how prototypal inheritance works. A. 자바스크립트는 자바와 같은 일반적인 객체지향(이하 OOP) 언어들과는 다르게 "프로토타입 기반 언어"입니다. 따라서 클래스라는 개념이 없고(ES6에서 클래스를 도입하긴 했지만, 엄밀히 따지면 자바의 클래스 개념과는 많이 다른, 그저 Syntax Sugar에 지나지 않음), 이를 프로토타입을 통해 해결하려 합니다. OOP에서 상속이라는 개념은 부모 클래스의 속성(property)들을 자식 클래스에서 재선언할 필요 없이(오버라이드를 통해 재정의하는 것을 제외하고) 그대로 사용하는 것을 의미합니다. 앞서 언급했듯, ..
2020.10.02