1. 타입 변환이란?자바스크립트의 타입 변환에는 두 가지가 있습니다:명시적 타입 변환 (타입 캐스팅)암묵적 타입 변환 (강제 타입 변환) 2. 암묵적 타입 변환2.1 문자열 변환// 숫자 -> 문자열1 + '2' // "12"// 불리언 -> 문자열true + '' // "true"// null -> 문자열null + '' // "null"// undefined -> 문자열undefined + '' // "undefined"// 객체 -> 문자열({}) + '' // "[object Object]"2.2 숫자 변환// 문자열 -> 숫자+'0' // 0+'1' // 1+'string' // NaN// 불리언 -> 숫자+true // 1+false // 0// null -> 숫자+null // 0// un..
728x90
반응형
전체 글
1. 객체란?자바스크립트의 객체는 관련된 데이터와 함수의 집합입니다. 객체는 프로퍼티(속성)와 메서드로 구성됩니다.const person = { name: 'Lee', // 프로퍼티 age: 20, // 프로퍼티 sayHello() { // 메서드 console.log(`Hello, I'm ${this.name}`); }}; 2. 객체 생성 방법2.1 객체 리터럴가장 일반적이고 간단한 방법입니다.const obj = { property1: 'value1', property2: 'value2'};2.2 Object 생성자 함수const obj = new Object();obj.property1 = 'value1';obj.proper..
기본 개념`useEffect`와 `useLayoutEffect`는 모두 컴포넌트가 렌더링된 후 특정 작업을 수행하기 위해 사용됩니다. 하지만 각각의 실행 시점과 목적이 다르기 때문에, 상황에 따라 적절한 Hook을 선택해야 합니다. useEffect`useEffect`는 렌더링이 완료된 후 비동기적으로 실행됩니다. 즉, 화면이 사용자에게 실제로 표시된 이후에 실행됩니다.주요 특징비동기적 실행화면 표시 후 실행성능에 미치는 영향이 적음사용 사례useEffect(() => { // API 데이터 가져오기 fetchData().then(data => setData(data)); // 이벤트 리스너 등록 window.addEventListener('resize', handleResize); // 클린..
1. 호이스팅이란?`호이스팅(Hoisting)`은 자바스크립트에서 변수와 함수 선언이 코드의 최상단으로 "끌어올려지는" 것처럼 동작하는 현상을 말합니다. 이는 자바스크립트 엔진의 코드 실행 방식 때문에 발생합니다. 2. 인터프리터 언어인데 호이스팅이 가능한 이유자바스크립트는 `인터프리터 언어`로 알려져 있지만, 실제로는 코드 실행 전에 두 가지 주요 단계를 거칩니다:컴파일 단계 (Creation Phase)실행 단계 (Execution Phase) 3. 실행 과정 상세 분석3.1 컴파일 단계 (Creation Phase)이 단계에서는 다음과 같은 작업이 이루어집니다:변수 선언 처리`var`로 선언된 변수는 `undefined`로 초기화`let`과 `const`로 선언된 변수는 초기화하지 않음 (Tem..
리액트에서 `index`를 key로 사용하는 것은 권장되지 않는 이유는 배열의 요소들이 추가되거나 삭제될 때, 배열의 순서가 바뀌는 경우 문제가 발생할 수 있기 때문입니다.리액트에서 `key`를 통해 리스트에서 어떤 요소가 변경, 추가, 삭제됐는지를 추적합니다. 그러나 index를 key로 사용하면 배열의 순서가 변경될 때 리액트가 요소들을 잘못 인식할 수 있습니다. 예를 들어 배열에 새로운 요소가 중간에 추가되면 그 뒤에 있는 요소들의 인덱스가 모두 변경되게 된다. 리액트는 이를 새로운 요소로 인식해 불필요하게 재렌더링을 하거나, 요소의 상태를 잘못 처리할 수 있습니다.// 초기 상태의 할일 목록const todos = [ { text: '운동하기' }, // index: 0 { text: '공부하..
`디바운스(Debounce)`와 `쓰로틀(Throttle)`은 연속되는 이벤트나 함수의 호출을 제어하여 최적화하는 기법입니다.`디바운스(Debounce)`는 연속적으로 이벤트가 발생했을 때, 마지막 이벤트가 발생한 후 일정 시간이 지난 후에 이벤트 핸들러가 실행되는 방식입니다. 이를 통해 불필요하게 많은 이벤트 호출을 방지할 수 있습니다. 예를 들어, 검색창에 사용자가 키를 입력할 때마다 검색 요청을 보내면 부하가 지나치게 커지기 때문에, 사용자가 입력을 멈춘 후 일정 시간이 지나면 요청을 보내는 방식으로 디바운스를 적용할 수 있습니다. `쓰로틀(Throttle)`은 일정 시간 간격동안 발생한 이벤트 중 첫 번째 또는 마지막 이벤트만 처리하는 방식입니다. 즉, 이벤트가 계속해서 발생하더라도 설정된 시간 ..
`제어문`은 코드의 실행 흐름을 제어하는 문입니다. 조건에 따라 코드 블록을 실행하거나 반복 실행할 때 사용합니다. 1. 블록문 (Block Statement)0개 이상의 문을 `중괄호`로 묶은 코드 블록자바스크립트는 블록문을 하나의 실행 단위로 취급{ var foo = 10; console.log(foo);}2. 조건문 (Conditional Statement)2.1 if...else 문주어진 `조건식`의 평가 결과에 따라 실행할 코드 블록 결정if (조건식) { // 조건식이 true일 때 실행} else { // 조건식이 false일 때 실행}2.2 switch 문주어진 표현식의 평가 결과와 일치하는 case 문으로 실행 흐름 이동switch (표현식) { case 값1: // 표현식..
728x90
반응형