매일 책 15분동안 읽고 새로 깨달은 부분 정리
continue 문은 반복문의 코드 블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행흐름을 이동시킨다. break 문처럼 반복문을 탈출하지는 않는다.
if 문 내에서 실행해야 할 코드가 길다면 들여쓰기가 한 단계 더 깊어지므로 continue 문을 사용하는 편이 가독성이 더 좋다.
// continue 문을 사용하지 않으면 if 문 내에 코드를 작성해야 한다.
for (var i = 0; i < string.length; i++){
if (string[i] === search){
count++;
// code
// code
// code
}
}
// continue 문을 사용하면 if 문 밖에 코드를 작성할 수 있다.
for (var i=0; i < string.length; i++){
if(string[i] !== search) continue;
count++;
// code
// code
// code
}
개발자가 의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환 또는 타입 캐스팅이라 한다.
개발자의 의도와는 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되기도 한다. 이를 암묵적 타입변환 또는 타입강제변환이라 한다.
var x = 10;
// 암묵적 타입 변환
// 문자열 연결 연산자는 숫자 타입 x의 값을 바탕으로 새로운 문자열을 생성
var str = x + '';
console.log(typeof str, str); // string 10
// x 변수의 값이 변경된 것은 아니다.
console.log(typeof x, x); // number 10
원시 값은 변경 불가능한 값. 타입 변환이란 기존 원시 값을 사용해 다른 타입의 새로운 원시 값을 생성하는 것.
전역 상태관리 라이브러리
전역 상태, 즉 Global State를 의미하고 그것을 관리하게 도와주는 라이브러리(패키지)
컴포넌트에서 컴포넌트로 state를 보내기 위해서는 반드시 부-모 관계가 되어야 한다.
조부모 컴포넌트에서 손자 컴포넌트로 값을 보내고자 할때도 반드시 부모 컴포넌트를 거쳐야만 한다.
즉, 정작 부모컴포넌트에서는 그 값이 필요가 없어도 단순히 손자 컴포넌트에게 전달하기 위해 불필요하게 거쳐야만 하는 것을 의미한다. (조부모 → 부모 → 손자)
자식 컴포넌트에서 부모 컴포넌트로 값을 보낼 수 없다.
리덕스를 사용하면 State를 공유하고자 할때 부-모 관계가 아니여도 되고, 중간에 의미없이 컴포넌트를 거치지 않아도 된다.
중앙 State관리소에서 State를 생성하고, 만약 어떤 컴포넌트에서 State가 필요하다면 컴포넌트가 어디에 위치하고 있든 상관없이 State를 불러와서 사용할 수 있게 됌.
이러한 값들을 관리하는 것을 전역 상태 관리라고 한다.
State의 그룹
// 초기 상태값
const initialState = {
number: 0,
}
// counter 리듀서
const counter = (state = initialState, action) => {
switch (action.type){
default:
return state;
}
};
export default counter;
state = initialState처럼 state에 initialState를 할당해줘야 한다.
useSelector = 스토어 조회
컴포넌트에서 리덕스 스토어를 조회하고자 할때는 useSelector라는 'react-redux'의 훅을 사용해야 한다.
useSelector의 사용법
// 1. store에서 꺼낸 값을 할당 할 변수를 선언한다.
const number =
// 2. useSelector()를 변수에 할당해준다.
const number = useSelector(()=>{})
// 3. useSelector의 인자에 화살표 함수를 넣어준다.
const number = useSelector(()=>{})
// 4. 화살표 함수의 인자에서 값을 꺼내 return 한다.
const number = useSelector((state)=>{
return state
})
화살표 함수에서 꺼낸 state라는 인자는 현재 프로젝트에 존재하는 모든 리덕스 모듈의 state
액션을 만드는 생성자. 액션객체를 만드는 함수.