반응형
SMALL

JavaScript 15

자바스크립트의 window 전역객체와 호이스팅은 어떤 관계가 있는가?

JavaScript에서 전역 범위에서 선언한 변수나 함수는 전역 객체의 프로퍼티로 등록됩니다. 브라우저 환경에서는 전역 객체로 window 객체를 사용하고, Node.js 환경에서는 global 객체를 사용합니다. 리액트에서 쓴다면 window 객체겠네요. 이 때, JavaScript에서는 호이스팅(hoisting)이라는 메커니즘이 있습니다. 호이스팅은 변수나 함수를 선언하기 전에 사용할 수 있다는 것을 의미합니다. 즉, 변수 선언 혹은 함수 선언은 위치에 상관없이 자동적으로 스코프의 최상위로 끌어올려지는 것입니다. 하지만 전역객체 window는 브라우저 환경에서 전역객체로 사용되고, 전역 변수와 함수를 window 객체의 프로퍼티로 사용할 수 있습니다. 즉 전역 스코프에서 선언한 변수와 함수는 자동으로..

JavaScript 2023.03.09

모던자바스크립트 - 6(데이터 타입), 7(연산자), 8(제어문)

데이터 타입 구분 데이터 타입 예시 원시 타입(Primitive Type) number - 10, 10.12, -20 - Infinity, -Infinity, NaN - 0b100001(2진수), 0o101(8진수) - 1 === 1.0 (숫자타입은 모두 실수로 처리) - 0o101 === 1 ("") string - 'String\n Number'(이스케이프 시퀀스 없이는 줄바꿈 불가) - `Template Literal Number` (이스케이프 없이 줄바꿈 등 허용) - `variable value is ${variables}` (Template Literal은 변수를 넣어서 사용 가능) boolean - true, false null - null - 변수에 값이 없음을 의도적으로 명시 - und..

JavaScript 2023.03.07

모던 자바스크립트 5 - 표현식과 문

값 // 값 => 표현식이 평가(식 해석해 값 생성 및 참조)돼 생성된 결과 // 10 + 20이 평가되어 숫자 값 30을 생성한다 10 + 20 // 10 + 20이 평가되어 생성된 숫자 값 30이 할당된다. const sum = 10 + 20 리터럴 - 사람이 이해할 수 있는 문자 혹은 미리 약속된 기호 - 런타임에 리터럴 평가 => 값생성 문 // 변수 선언문 let x // 할당문 x = 5; // 함수 선언문 (문장) function foo() {} // 조건문 if(x > 1) console.log(x); //반복문 for(var i = 0; i < 2; i++) console.log(i) // 선언은 표현식 아님 let x // 할당은 표현식 x = 10 // 표현식 문은 값처럼 사용가능 c..

JavaScript 2023.02.25

모던 자바스크립트 4 - 변수

변수는 뭐지? // 변수를 선언하고 할당하면 // 컴퓨터 메모리에 자바스크립트가 자동으로 고유의 메모리 주소를 생성 // (임의의 메모리 상의 위치에 저장, 메모리 저장 시 모두 2진수로 저장됨) const number1 = 100 const number2 = 200 // CPU가 메모리로부터 두 변수의 값을 읽어서 연산 // 연산한 값은 그자체로는 재사용이 불가 number1 + number2 = 300 // 재사용하려면 연산결과 값을 변수에 담아야함 const sum = number1 + number2 // 30 자바스크립트는 메모리 주소를 통해 값에 직접 접근 불가 가능하다면 시스템 멈추게하는 치명적인 오류가 발생할 수도 있음 코드 실행 전에는 메모리 주소 알 수 없음 // number라는 이름으로..

JavaScript 2023.02.20

브라우저 동작원리(= 렌더링 과정) + 리액트의 원리

https://mine-it-record.tistory.com/577 DOM(Document Object Model) 생성 - 생명주기: DOMContentLoaded, load, beforeunload, unload 1. DOMContentLoaded => DOM 트리 완성 즉시 발생함. => img 및 CSS 등 외부 자원 기다리지 않음 => 여러 스크립트 태그가 존재한다면 => 모든 스크립트가 실행된 이후 DOMContentLoaded가 실행됨 (이유: DOMContentLoaded에 DOM 조작 관련 로직이 있을 수 있기 때문) // a // b // c // 실행순서 b => c => a => document.createElement('script')로 동적으로 생성되고 웹페이지에 추가된 스크립..

JavaScript 2022.09.21
반응형
LIST