17.1 Object 생성자 함수 new 연산자와 함께 object 생성자 함수를 호출하면 빈 객체를 생성하여 반환한다. // 빈 객체의 생성 const person = new Object(); // 프로퍼티 추가 person.name = 'April'; person.sayHello = function () { console.log('Hi! My name is ' + this.name); }; console.log(person); // {name: "April", sayHello: ƒ} person.sayHello(); // Hi! My name is April 생성자 함수(constructor)란? new 연산자와 함께 호출하여 객체(인스턴스)를 생성하는 함수.생성자 함수에 의해 생성된 객체를 인스턴스..
ES5까지 변수를 선언할 수 있는 유일한 방법은 var 키워드를 사용하는 것이었지만, var 키워드로 선언했을 때에 심각한 문제점이 발생할 수 있어 이를 보완하기 위해 ES6부터 let과 const 키워드를 도입했다. 15.1 var 키워드로 선언한 변수의 문제점 15.1.1 변수 중복 선언 허용 var 키워드로 선언한 변수는 중복 선언이 가능하다. 이렇게 중복 선언이 가능하면 초기화 문(변수 선언과 동시에 초기값을 할당하는 문) 유무에 따라 다르게 동작한다. 초기화 문이 있는 변수 선언은 자바스크립트 엔진에 의해 var 키워드가 없는 것처럼 동작하고 초기화 문이 없는 변수 선언문은 무시된다. 이때 에러는 발생하지 않는다. 게다가 변수를 중복 선언하면서 값까지 할당했다면 의도치 않게 먼저 선언된 변수 값..
전역 변수의 무분별한 사용은 위험하므로, 젼역 변수를 반드시 사용해야 할 이유를 찾지 못한다면, 지역 변수를 사용 권장 14.1 변수의 생명 주기 변수는 선언에 의해 생성되고, 할당을 통해 값을 가지며 언젠가 소멸한다. 즉, 변수는 생명 주기(life cycle)가 있다. 변수에 생명 주기가 없다면 한번 선언된 변수는 프로그램을 종료하지 않는 한 영원히 메모리 공간을 점유하게 된다. 14.1.1 지역 변수의 생명 주기 변수는 자신이 선언된 위치에서 생성되고 소멸한다. 전역 변수의 생명 주기는 애플리케이션의 생명 주기와 같지만, 함수 내부에서 선언된 지역 변수는 함수가 호출되면 생성되고 함수가 종료하면 소멸한다. 즉, 지역 변수의 생명 주기는 함수의 생명 주기와 일치한다. 변수는 하나의 값을 저장하기 위해..
포스팅 주 내용은 전역 스타일(Global), 테마(theme), 타입스크립트 적용에 포커스를 맞추겠습니다. react 를 사용해본적이 있거나, 스타일 컴포넌트를 사용해보신 적이 있으신 분들은 아래 코드 순서만 보고 충분히 감을 잡으실 수 있을 거라고 생각 합니다. ✔ 환경 세팅 // 스타일 컴포넌트 설치 yarn add styled-components // 타입스크립트 적용 yarn add --dev @types/styled-components ✔ styled.d.ts import 'styled-components'; declare module 'styled-components' { export interface DefaultTheme { TitleFont : { fontSize : any; fontF..
stale 대하여 리액트 쿼리는 기본적으로 캐시된 데이터를 stale한 상태로 여깁니다. stale이란 최신화가 필요한 데이터라는 의미로 stale한 상태가 되면 다음의 경우에 refetch 됩니다. 새로운 query 인스턴스가 마운트될 때( useQuery가 처음 호출될 때 ) 브라우저 화면을 이탈했다가 다시 포커스할 때 네트워크가 다시 연결될 때 특별히 설정한 refetch interval에 의해서 (refetchInterval) refetchOnWindowFocus 옵션 등으로 기본 refetch 설정을 막을 수 있고 staleTime 옵션으로 설정한 시간 동안 데이터가 stale 되지 않도록 해 refetch를 막을 수도 있습니다. query에 별다른 action이 없으면 inactive 상태로 ..
13_스코프 스코프(scpoe : 유효범위) 는 자바스크립트를 포함한 모든 프로그래밍 언어의 기본이며 중요하다. 특히, 자바스크립트의 스코프는 다른 언어의 스코프와 구별되는 특징이 있다. 13.1 스코프란? 모든 식별자(변수이름, 함수이름, 클래스 이름 등)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정된다. 즉, 식별자가 유효한 범위 코드의 문맥과 환경 : "코드가 어디서 실행되며 주변에 어떤 코드가 있는지" 를 렉시컬 환경 이라고 부른다. 코드의 문맥은 렉시컬 환경으로 이루어지고, 이를 구현한 것이 실행 컨텍스트 이며, 모든 코드는 실행 컨텍스트에서 평가되고 실행된다. 13.2 스코프의 종류 코드는 전역(global) 과 지역(local) 로 구분 할 수 있..
12_함수 12.1 함수란? 프로그래밍 언어의 함수는 일련의 과정을 문(statement)으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것 이다. 각 용어에 대한 간단한 설명은, 함수 내부로 입력을 전달받는 변수를 매개변수(parameter) 입력을 인수(argument) 출력을 반환값(return value) 함수는 정의만으로 실행되는 것은 아니므로, 실행을 명시적으로 지시해야 한다. -> 이를 함수 호출 이라 한다. 12.2 함수를 사용하는 이유 함수는 몇 번이든 호출할 수 있으므로 코드의 재사용 이라는 측면에서 매우 유용하다. 코드의 중복을 억제하고 재사용성을 높이는 함수는 유지보수의 편의성 을 높이고 코드의 신뢰성 을 높인다. 12.3 함수 리터럴 함수 리터럴은, function ..