1.1 자바스크립트의 동등 비교1.1.4 리액트에서의 동등 비교Object.is를 기반으로 shallowEqual이라는 함수를 만들어 사용리액트에서 사용하는 JSX props 객체를 비교하기 위함Object.is로 비교 수행객체 1 depth 비교(얕은 비교) 수행props에 객체를 넘긴다면 렌더링이 예상치 못하게 작동메모이제이션(useMemo, useCallback, React.memo)를 올바르게 사용하기 위해 고려 필요 1.2 함수함수 네이밍useEffect나 useCallback 등의 훅의 콜백 함수에 네이밍을 한다면 디버깅에 도움받을 수 있음useEffect(function apiRequest() { ...}, []); 1.3 클래스정적 메서드정적 메서드 내부의 this는 인스턴스가 아닌 클래..
1. 일급 객체- 무명의 리터럴로 생성 가능(런타임에 생성 가능)- 변수나 자료구조(객체, 배열 등)에 저장 가능- 함수의 매개변수에 전달 가능- 함수의 반환값으로 사용 가능 자바스크립트 함수는 위 조건에 모두 해당하기 때문에 일급 객체임= 함수를 객체와 동일하게 사용할 수 있음=> 함수형 프로그래밍 가능 함수는 일반 객체와 달리 호출 가능, 함수 고유의 프로퍼티 소유 2. 함수 객체의 프로퍼티arguments, caller, length, name, prototype __proto__는 접근자 프로퍼티이며,Object.prototype 객체의 프로퍼티를 상속받은 것으로 함수 객체 고유의 프로퍼티가 아님 1. arguments 프로퍼티값: arguments 객체함수 호출 시 전달된 인수들의 정보를 담고 ..
12.2 함수를 사용하는 이유동일한 작업을 반복적으로 수행할 때 미리 정의된 함수를 재사용하는 것이 효율적 유지보수 편의성코드의 신뢰성(실수 ↓)코드의 가독성(적절한 이름을 가졌다면 함수의 역할을 파악하는데 도움됨) 코드는 개발자를 위한 문서 -> 가독성 좋은 코드 = 좋은 코드 12.3 함수 리터럴자바스크립트의 함수는 객체(다른 언어와 차이. > 18. 함수와 일급 객체에서 계속)일반 객체와 달리 호출 가능하고 고유한 프로퍼티를 가짐함수 이름은 함수 몸체 내에서만 참조할 수 있는 식별자 12.4 함수 정의변수는 선언 함수는 정의라고 표현함수 선언문이 평가되면 식별자가 암묵적으로 생성되고 함수 객체가 할당됨 1 함수 선언문function add(x, y) { retu..
변수 : 상황에 따라 변할 수 있는 값 - 변수이름에 공백을 사용할 수 없어서 단어의 첫글자를 대문자로 사용(camelCase라고 한다) 다른 이름 방식도 존재함. // 변수 선언 // JS에서는 C, C++, Jave와 달리 변수 선언 시 메모리 용량을 할당해주지 않아도 됨 // 초기화 undefined 상태 let num; // 변수 할당 num = 12; // 변수 선언과 할당을 동시에 let num = 12; // let으로 선언된 변수는 한번 선언 후 계속해서 바꿀 수 있음 num = 'hi' 표현식 : 변수와 특정값을 이용하여 계산하는 연산식 = : 할당 연산자(우변을 좌변에 할당) == : 같은지 비교( -> 잘 사용하지 않음/ 0 == "0", 0 == "" 모두 true 때문) === :..