useMemo는 리렌더링 사이의 계산 결과를 캐시할 수 있는 React 훅이다.값을 재사용하여 성능 최적화를 돕는 역할을 한다.반환값을 캐싱하는 것을 memoization이라 하여 useMemo라고 부른다.리액트는 초기 렌더링 중에 calculateValue함수를 호출
매서드가 자신이 속한 객체의 프로퍼티를 참조하려면 먼저 자신이 속한 객체를 가리키는 식별자를 참조할 수 있어야 한다.생성자 함수를 정의하는 시점에는 아직 인스턴스를 생성하지 전이므로 생성자 함수가 생성할 인스턴스를 가리키는 식별자를 알 수 없다.자바스크립트는 자신이 속
생성자 함수에 의해 생성된 객체는 프로토타입 체인을 통해 Object.prototype 메서드인 hasOwnProperty를 호출할 수 있다.생성자 함수 Person에 의해 생성된 me객체가 Person.prototype뿐만 아니라 Object.prototype도 상속
자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어다.자바스크립트는 객체 기반의 프로그래밍 언어이며 자바스크립트를 이루고 있는 거의 모든것이 객체다.객체지향 프로그래밍은 “객체의 집합으로 프로그램을 표현”하려는
✅ 객체를 생성하는 여러가지 방법 중 이번엔 생성자 함수를 사용해 객체를 생성하는 방식을 알아보자 Object 생성자 함수 new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환한다. 생성자 함수에 의해 생성된 객체를 “인스턴스”라
async/await를 활용하여 보다 직관적인 비동기 처리가 가능하다.async 키워드를 함수에 붙이게되면 자동적으로 그 함수는 Promise 객체를 반환하게 된다. (비동기 처리 함수) → then() 메서드를 사용가능async를 붙인 함수의 리턴값은 resolve
Pending (대기 상태) : 비동기 작업이 진행 중이거나, 실행될 수 없는 상태Fulfilled (성공) : 비동기 작업이 의도한대로 수행된 상태Rejected (실패) : 비동기 작업이 실패한 상태Pending → Fulfilled : Resolve (성공)Pen
자바스크립트는 싱글스레드이고, 스레드(일꾼)에서 차례대로 하나씩 작업을 수행한다. (동기)작업이 짧으면 문제 없지만, 만약 taskB가 20초라고 하면 그 다음 수행 기다리기 속터짐 → 동기처리방식 문제점 ⇒ 비동기작업으로 문제점 해결 가능하다!비동기 작업은 싱글스레드
var 키워드로 선언한 변수는 중복 선언이 가능하다.이미 선언되어 있는 것을 모르고 중복 선언한다면 의도치 않게 먼저 선언된 변수 값이 변경되는 부작용 발생var 키워드로 선언한 변수는 오로지 함수의 코드 블록만을 지역 스코프로 인정한다.함수 외부에서 var 키워드로
전역 변수의 무분별한 사용은 위험하다.전역 변수의 사용을 억제할 수 있는 방법들 알아보자암묵적 결합 허용모든 코드가 전역 변수를 참조하고 변경할 수 있다.변수의 유효범위가 클수록 코드의 가독성은 나빠지고 의도치 않게 상태가 변경된다.긴 생명주기전역 변수는 생명주기가 길
모든 식별자(변수 이름, 함수 이름, 클래스 이름 등)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정된다. 이를 스코프라 한다.식별자가 유효한 범위스코프(유효 범위)를 통해 식별자인 변수 이름의 충돌을 방지하여 같은 이름의 변
함수는 자바스크립트에서 가장 중요한 핵심 개념스코프, 실행컨텍스트, 클로저, 생성자 함수에 의한 객체 생성, 메서드, this, 프로토타입 모듈화 등 모두 함수와 연관함수는 일련의 과정을 문으로 구현하고 코드블록으로 감싸서 하나의 실행 단위로 정의한 것이다.함수의 구
원시 타입 vs. 객체 타입원시 값은 변경 불가능한값이다. (immutable value)변경 불가능하다는 것은 변수가 아니라 값에 대한 말이다. 원시값을 변경할 수 없다는 것이지 변수 값을 변경할 수 없다는 것은 아니다. (변수는재할당으로 언제든지 변수값 변경(교체)
자바스크립트는 객체기반의 프로그래밍 언어이다.자바스크립트를 구성하는 거의 모든 것이 객체라 할 수 있다. (원시값을 제외한 나머지는 모두 객체)객체 타입은 다양한 타입의 값을 하나의 단위로 구성한 복합적인 자료구조다.원시타입의 값은 변경 불가능한 immutable va
자바스크립트의 모든 값은 타입이 있다.의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환 또는 타입 캐스팅이라 한다.의도와 상관없이 자바스크립트 엔진에 의해 암묵적으로 자동 타입변환되는 것을 암묵적 타입 변환 또는 타입 강제 변환이라 한다.이때 타입변환이 일어날때
제어문은 조건에 따라 코드 블록을 실행하거나 반복 실행할 때 사용한다.(조건문 또는 반복문)코드의 실행 흐름을 이해하기 어렵게 만들 수 있기때문에 가독성이 떨어질 수 있다. ⇒ forEach, map, filter, reduce 등의 고차함수를 사용해 복잡성 해결하려
연산는 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행해 하나의 값을 만든다. 이때 연산의 대상을 피연산자라 한다. 피연산자는 값으로 평가될 수 있는 표현식이어야 한다.피연산자는 연산의 대상이 되어야 하므로 값으로 평가할 수 있어
데이터 타입은 값의 종류를 말한다.자바스크립트는 7개의 데이터 타입을 제공한다. 원시타입(Primitive Type)과 객체타입(Reference Type)으로 분류데이터 타입에 따라 확보해야 할 메모리 공간의 크기도 다르고 저장되는 2진수도 다르며 읽어 들여 해석하는
값은 식(표현식)이 평가되어 생성된 결과를 말한다.모든 값은 데이터 타입을 가지며, 메모리에 2진수 비트의 나열로 저장된다.변수에 할당되는 것은 값이다.리터럴은 사람이 이해할 수 잇는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법을 말한다.3 //숫자 리터럴 3
데이터의 사용 : 데이터를 입력 받는다. → 결과를 출력한다.변수는 프로그래밍 언어에서 데이터를 관리하기 위한 핵심 개념하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름값이 저장된 메모리 공간에 상징적인 이름을 붙인 것