4주차 위클리 페이퍼

김재환·2023년 11월 12일
0

var, let, const 를 중복 선언 허용, 스코프, 호이스팅 관점에서 서로 비교해 주세요.

a. 중복 선언:

var: 중복 선언 허용됩니다. 동일한 변수명으로 여러 번 선언해도 오류가 없고, 마지막 선언이 기존 값을 덮어씁니다.
let: 중복 선언을 허용하지 않습니다. 동일한 변수명으로 여러 번 선언하면 오류가 발생합니다.
const: 중복 선언을 허용하지 않습니다. const로 선언한 변수는 재할당이 불가능하며, 동일한 변수명으로 다시 선언하면 오류가 발생합니다.

b. 스코프:

var: 함수 스코프를 가집니다. 함수 내에서 선언된 변수는 함수 내에서만 유효합니다.
let 및 const: 블록 스코프를 가집니다. 중괄호 {} 내에서 선언된 변수는 해당 블록 내에서만 유효합니다.

c. 호이스팅:

var: 호이스팅이 발생합니다. 변수 선언은 코드의 맨 위로 끌어올려집니다. 초기화되지 않은 변수는 undefined 값이 할당됩니다.
let 및 const: 호이스팅이 발생하지만, 초기화되지 않은 변수는 undefined 대신 "TDZ (Temporal Dead Zone)"에 빠집니다. 이후 변수를 초기화하기 전까지 사용하면 오류가 발생합니다.

브라우저가 어떻게 동작하는지 설명해 주세요.

브라우저는 웹페이지를 렌더링하고 실행하는 환경으로, HTML, CSS 및 JavaScript 코드를 처리합니다. 다음은 브라우저의 주요 동작 단계입니다:

a. 파싱 (Parsing):

브라우저는 서버에서 받은 HTML, CSS 및 JavaScript 파일을 파싱하여 문서 객체 모델(DOM) 및 CSS 객체 모델(CSSOM)을 생성합니다.

b. 렌더 트리 생성:

DOM과 CSSOM을 결합하여 렌더 트리를 생성합니다. 이 트리는 화면에 표시되는 요소의 계층 구조를 나타냅니다.

c. 레이아웃:

렌더 트리를 기반으로 각 요소의 레이아웃을 계산합니다. 이 과정은 요소의 크기, 위치, 박스 모델 및 흐름을 결정합니다.

d. 렌더링:

브라우저는 레이아웃 정보를 사용하여 화면에 컨텐츠를 렌더링하고 표시합니다.

e. JavaScript 실행:

HTML 파싱 중 JavaScript 코드를 만나면 실행합니다. 이때, var, let, const의 스코프 및 호이스팅 규칙에 따라 변수를 처리합니다.

f. 이벤트 처리:

브라우저는 사용자 상호작용(클릭, 입력 등)을 감지하고, JavaScript 코드로 이벤트 핸들러를 실행합니다.

g. 비동기 요청:

브라우저는 이미지, 스타일시트 및 기타 리소스를 비동기적으로 요청하고 로드합니다.

h. 랜더링 업데이트:

변경된 내용이나 상호작용에 따라 화면을 다시 그립니다.
이러한 단계를 통해 브라우저는 웹페이지를 표시하고 상호작용을 처리합니다. JavaScript의 변수 선언 및 사용은 이 프로세스 중 하나로, 스코프 및 호이스팅 규칙에 따라 실행됩니다.

profile
안녕하세요

0개의 댓글