본문 바로가기

FE/REACT

[REACT]0103

●연산자

-조건(삼항) 연산자

pages > 1000 ? "over a thousand" : "less than 10000";

//첫번째 부분(pages>100): 상태
//두번째 부분: 상태가 참일 경우 보여줌
// 3번째 부분: 상태가 거짓일 경우 보여줌

 

 

-논리 연산자 (&& )

왼쪽에서 오른쪽으로 평가할때 연산자는 처음으로 만나는 거짓같은 피연산자의 값을 반환 

만약 모두 참이면 마지막 피연산자의 값을 반환함

//AND연산자는 불리언이 아닌 값을 보존함 

result=''&& 'fff' //''빈문자열 반환
result = 2&&0 //result에 0이 나옴

 

 

 

●Arrow Function

-함수 작성하는 방법

 

인수, 화살표 , 반환하려는 항목

//일반 함수식
/*function getYear(str) {
  return str.split("-")[0];
}*/

//화살표 함수
const getYear=(str) => str.split("-")[0];
console.log(getYear(publicationDate));

let sub= (first,second)=>first=second;

 

괄호 () 안에는 기존 함수에서 사용하는 파라미터 넣기 

=> 다음 {}에는 반환하고 싶은 내용을 적으면 된다.

 

 

 

● Optional Chaining

뭔지 이해가 잘 안가서  다른 사람들이 정리 해놓은걸 찾아봤다.

- elvis연산자라고 알려져있고 선택적 연결을 할 수 있도록 도와줌 : ?.  이 기호를 사용함

연산자는 존재 또는 존재하지 않는 요소와 메서드들을 안전하게 접근할 수 있도록 도와준다.

function getTotalReviewCount(book) {
  const goodread = book.reviews.goodreads?.reviewsCount ?? 0;
  const librarything = book.reviews.librarything?.reviewsCount ?? 0;
  return goodread + librarything;
}
console.log(getTotalReviewCount(book));


// 옵셔널 체이닝 이전 
let book= reader &&reader.date&& reader.date.title;
book=reader?.date?.title;

//options객체에서 onSuccess속성이 없을 경우 undefined반환
 const onSuccess=options?.onSucess;
 
// 아래 코드는 onSuccess 값이 undefined 여도 오류를 발생하지 않음
onSuccess?.();

// 체이닝을 사용해 문장 구문을 줄일 수 있음
options?.onSuccess?.();

// options 객체의 onSuccess 속성이 존재할 경우,
// 호출 전에 추가적인 옵셔널 체이닝 연산자(?.)를 붙히지 않는 것이 좋음
// 오직 왼쪽에 있는 항목이 존재하지 않을 수도 있는 경우에만 체이닝 연산자(?.)을 사용하는 것을 권장
options?.onSuccess();

 

 

 

 

● (중요) 3가지 기능적 배열 메서드 

기능적 배열 메서드 : 원래 배열을 변화시키지 않고 그 배열을 기반으로 새 배열을 반환함

 

1.map() - 매핑 매서드

map메서드의 역할  

자바스크립트의 내장 함수

반복되는 컴포넌트를 렌더링하기 위해 사용됨

 

배열의 각각의 요소에 일부 연산만 적용함

var con=[1, 2, 3, 4].map((el) => el * 2);
console.log(con) //con의 값으로 2,4,6,8을 얻을수 있다.

const movies = movies.map((moives) => movies.title);
movies; //movies에 대해서 영화 제목들만 모아서 추출할 수 있음

 

 

여러개의 값을 묶는 경우 

const essentailData = movies.map((movies) => ({
  title: movies.title,
  director: movies.director,
  reviews: getTotalReview(movies),
}));
essentailData;

 

 

 

2.filter() - 필터 매서드

프론트 엔드 개발은 데이터 작업과 연관이 있기 때문에 이 메소드에 대해서 잘 아는 것이 중요함

const romanticmovies = movies
  .filter((movies) => movies.genres.includes("romantic"))
  .map((movies) => movies.title);
romanticMovies;

//여러 데이터 중에서 장르를 로맨스 영화를 가진 것을 추출

 

 

3.reducer() - 축소 매서드

 

 

- 가장 다 용도적이고 강력한 메서드 

- 전체 배열을 하나의 값으로 축소함

-reducer(함수값, 시작값)

 

 

●메서드 사용법

  filter :  이전 배열보다 길이를 짧게 만드는 메서드 

  map  : 이전 배열보다 길이를 길게 만드는 메서드 

 

 

//배열 요소 추가, 삭제 업데이트
//책 객체를 배열에 추가
const newMovie = {
  id: 6,
  title: "harry potter",
  author: "j.k.롤링",
};
const moviesAfteradd = [...movies, newMovie];
moviesAfteradd;

const deleteMoMvies = moviesAfteradd.filter((movies) => movies.id !== 3);
deleteMovies;

const updateMovies = deleteMovies.map((books) =>
  movies.id === 1 ? { ...movies, runningtIime: 120 } : movies
);
updateMovies;

 

'FE > REACT' 카테고리의 다른 글

[PJ] BrowserRouter, Routes,Route 간단 정리  (0) 2024.08.28
[REACT]0105  (0) 2024.01.05
[REACT]0102  (2) 2024.01.02
[react-native] 개념 정리즁  (1) 2023.04.10
리덕스  (0) 2023.02.10