본문 바로가기

[항해99] TIL76

44일차 (CS 13,14) Javascript의 호이스팅이란 호이스팅(hoisting)이란 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미한다. 이는 변수와 함수의 선언부가 각자의 현재 스코프 영역 최상단으로 옮겨지는 것처럼 보이는 현상을 의미한다. JavaScript는 코드를 실행하기 전에 Lexical Environment 내에 있는 메모리에 함수, 변수 선언을 추가한다. Lexical Environment는 코드가 실행되는 동안 변수와 함수가 살고 있는 공간이라고 보면 좋을 것 같다. 호이스팅은 함수 선언식에서만 발생하고, 함수 표현식에서는 발생하지 않는다. 함수 표현식은 변수에 할당하는 형태로 되어있기 때문에 함수가 아니라 변수로 취급되기 때문이다. var, let, const에 따라 호이스팅의.. 2023. 10. 17.
43일차 (CS 11,12) 데이터 10,000개를 가지고 무한 스크롤 구현시에 가장 중요하게 고려해야 할 점은? 큰 규모의 데이터를 무한 스크롤로 구현할 때, 브라우저의 reflow와 관련된 성능저하를 가장 중요하게 고려해야 할 점이라고 생각한다. 무한 스크롤에서는 사용자가 스크롤을 내릴 때마다 새로운 데이터를 로드하여 DOM에 추가한다. 이렇게 DOM의 요소가 계속 추가되면, 페이지의 레이아웃을 재계산하는 reflow가 빈번하게 발생되며, 이는 성능 저하의 주요 원인이 된다. 따라서 reflow와 관련된 성능저하를 가장 중요하게 고려해야 한다고 생각한다. 이러한 성능 저하를 최소화하기 위한 방법을 몇 가지 말하자면, 첫 번째는 불필요한 레이아웃 계산을 최소화하는 방법이다. DOM 요소를 추가하거나 수정하기 전에 display 속.. 2023. 10. 15.
42일차 (CS 9,10) Arrow Function 이란 Arrow Function은 ES6에서 도입된 새로운 함수 표현 방식이다. 전통적인 함수 표현 방식은 this 바인딩 관련 문제가 있었고, 이러한 문제를 해결하기 위해 Arrow Function이 등장하였다. Arrow Function은 this를 바인딩하지 않기 때문에 Arrow Function 안에서 this를 사용하면 상위 스코프의 this를 가리키게 된다. 이러한 특징 때문에 이벤트 핸들러나 콜백함수에서 유용하게 사용된다. 또한, 불필요한 함수 키워드나 중괄호를 생략할 수 있어 코드를 더 간단하게 작성할 수 있고, 가독성을 높여준다는 장점이 있다. ==와 === 연산자의 차이 == 연산자는 동등 연산자라고 하며, 두 값을 비교하기 전에 같은 타입으로 변환한 후 비교.. 2023. 10. 14.
41일차 (CS 7,8) var, let, const의 차이점 var은 ES6 문법 등장 이전에 변수를 선언하기 위해 주로 사용되었다. 그러나 var은 변수가 재선언될 때에도, 업데이트가 이루어진다는 문제점이 있었고, 이러한 문제를 해결하기 위해 ES6에서 let과 const가 도입되었다. let은 var과 유사하게 업데이트가 이루어진다. 하지만 var과 다른 점은 재선언 할 수 없다는 점이다. const는 두 변수와는 다르게 재선언과 업데이트 모두 안된다는 특징을 가지고 있다. 추가적으로 스코프에서도 차이점이 있는데, var은 전역범위, 함수 범위의 스코프를 가지고 있고, let과 const는 블록 스코프를 가진다. (블록 스코프: {}로 바인딩 된 코드 청크) Async/Await와 Promise의 차이점 Promise는 비.. 2023. 10. 13.
728x90