분류 전체보기(112)
-
[모던자바스크립트 딥다이브] 15장 let, co nst 키워드와 블록 레벨 스코프
var 키워드로 선언한 변수의 문제점 1. 변수 중복 선언 허용 같은 스코프 내에서 중복 선언을 허용 → 의도치 않게 변수 값이 변경되는 부작용 발생 초기화 문이 있는 변수 선언문의 경우 자바스크립트 앤진에 의해 var 키워드가 없는 것 처럼 동작. (초기화 문이 없는 변수 선언문은 무시된다.) var x = 10 // 코드진행 ~~~ var x = 100 // x = 100 처럼 재할당 하는 것 처럼 동작하게 된다. 2. 함수 레벨 스코프 var 키워드로 선언한 변수는 함수의 코드 블록만을 지역 스코프로 인정한다. var x = 10 if(true){ var x = 100 } // if 블럭 내의 var 키워드로 선언된 변수 x와 if 블록 외부의 var키워드로 선언한 변수 x는 // 동일 스코프 이므..
2023.08.13 -
[모던자바스크립트 딥다이브] 14장 전역 변수의 문제점
변수의 생명 주기 변수는 생명 주기를 가진다. ife cycle 선언에 의해 생성되고 할당을 통해 값을 가지고 언젠가 소멸하는 일련의 과정 메모리 공간이 확보된 시점부터 메모리 공간이 해제되어 가용 메모리 풀에 반환되는 시점까지 1. 지역 변수의 생명 주기 함수의 생명 주기와 일치한다. 지역 변수가 하수보다 오래 생존하는 경우 - 지역 변수가 속한 스코프를 누군가가 계속 참조하고 있을 때 함수 내부에서 선언된 변수는 함수가 생성한 스코프(랙시컬환경)에 등록된다. 해당 스코프가 소멸 될때까지 지역 변수는 유효하다. 누군가 스코프를 참조하고 있다면 해당 스코프는 계속 생존하게 되고 지역 변수는 소멸되지 않는다. 2. 전역 변수의 생명 주기 어플리케이션의 생명주기와 동일 var 키워드로 선언한 변수는 전역 객..
2023.08.13 -
[모던자바스크립트 딥다이브] 13장 스코프
스코프란 scope, 유효범위 식별자(변수 이름, 함수 이름, 클래스 이름 등)가 유효한 범위 식별자 결정 (Identifier resolution) - 자바스크립트 엔진이 코드문맥에 따라 스코프를 참고하여 식별자의 범위를 파악하는 것 스코프란 개념이 없다면? → 식별자 이름은 전체 프로그램에서 유일무이하게 하나만 사용해야 한다. OS 에서 파일명 → 식별자 / 디렉토리명 → 스코프 (동일한 이름의 test.txt 파일을 생성할 때 myDocs/test.txt 파일과 Desktop/test.txt 파일은 이름은 같지만 다른 파일이다.) 스코프의 종류 1. 전역 스코프 전역(global) - 코드의 가장 바깥 영역 전역은 전역 스코프를 만든다. 전역 스코프는 어디서든 유효하며, 참조 가능하다. 2. 지역 ..
2023.07.31 -
useRef
1. useRef가 필요한 상황을 예시를 들어 설명해주세요. React는 가상돔과 리얼돔을 비교하여 가상돔의 변경사항이 일어난 부분만 리랜더링 하는 방식으로 동작 / 직접 DOM 요소에 접근 하는 것을 지양함. 직접 DOM 요소에 접근해야 하는 경우에 useRef 사용 input 태그 포커스 커스텀 모달 엘리먼트 외부영역 클릭 스크롤 이벤트 리랜더링 되어도 객체의 값이 유지 → 특정 상태의 이전 값을 리랜더링 이후 비교해야 하는 경우에도 사용 가능 useRef와 useState 차이 → 값이 변경되었을때 리랜더링 발생 여부
2023.07.29 -
[모던자바스크립트 딥다이브] 12장 함수
함수란 수학의 함수 : 입력을 받아 출력을 내보내는 일련의 과정 프로그래밍 언어의 함수 : 일련의 과정을 문으로 구분하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것 매개변수 : 입력을 전달 받는 변수 (parameter) 입력 : 인수 (argument) 출력 : 반환값 (return value) 함수 정의에 의해 생성 함수 호출에 의해 실행되고 결과를 반환함 함수를 사용하는 이유 코드의 재사용 유지보수 유리 코드의 신뢰성 향상 함수 식별자명을 잘 지어야 한다 → 코드의 가독성 향상 함수 리터럴 function 키워드 + 함수이름 + 매개변수 목록 + 함수 몸체 함수이름 생략 가능, 기명함수, 익명함수 매개변수 목록 0개 이상 순서대로 할당 함수 몸체 일괄적으로 실행될 문들을 하나의 실행 단위로..
2023.07.28 -
Hoisting, TDZ / parameter, argument
Hoisting 이란? TDZ란? Hoisting 자바스크립트 코드 내 선언만 분리하여 엔진이 미리 메모리에 공간을 할당하여 선언부들이 코드의 최상단으로 끌어 올리는 것처럼 보이는 현상 TDZ 자바스크립트 변수 선언의 경우 var, let, const가 있는데 var는 호이스팅과 동시에 undefiend로 변수가 초기화 되지만 let, const와 같은 경우는 호이스팅 되어서 선언되더라도 초기화와 활당이 이루어지지 않기 때문에 초기화부분과 할당 부분의 코드라인이 실행되기 전까지 일시적으로 참조할수 없는 순간이 생깁니다. 이것을 템퍼럴 데드 존 이라고 부릅니다. parameter와 argument의 차이에 대해 설명해주세요. parameter 함수를 정의할 때 사용되는 변수를 매개변수, 파라미터 argum..
2023.07.26