[내배캠] 프로덕트 디자인 트랙/[내배캠] TIL : Today I Learned

[TIL] D+51 / React입문 / ReactJS - 단축평가(2)

rimmy 2025. 1. 1. 19:07

2025_1_1 수요일

+ 코딩 17일차

 

 

 

📝 Lastday I Did
React에서 많이 사용하게 될 JS문법에 중 화살표함수, 조건 연산자, 단축평가의 논리합연산자 까지 배웠고,UX집중반 문제 정의에 들어가기 앞서 리서치 내용들의 인사이트를 추출하고 방향성을 잡았다.

 

 

 

💫 Today I Did

→ 오늘은 1월 1일 새해를 맞아 휴일이지만 어제까지 들어야할 강의를 다듣지 못했기 때문에 강의를 들었다.,,,🥹

단축평가의 논리합연산자 까지 배웠다.🙆‍♂️

 

 

 

 


 

 

✅  배운점

 

 

 

 

단축 평가

 자바스크립트에서 단축 평가는 논리 연산자를 활용한다.


논리연산자 → 논리합 연산자(||), 논리곱 연산자(&&), Optional Chaining(?.), Null 병합 연산자(??)

 

 

어제 논리합연산자(||)까지 배웠고 오늘은 논리 곱연산자(&&)부터 시작한다!

 

 


// 4. 논리곱 연산자(&&) 사용하기
// 논리곱 연산자는 좌변 우변 비교,좌변이 truthy한 값일 때만 우변을 평가한다.

const loggedIn = true; // 로그인이 되어 있다.
const userName = "르탄이";

//로그인 상태일 때만 "르탄이"를 보여줘
loggedIn && console.log('환영합니다 ${userName}님!');

---------------------------------------------------------------------------

// 5. optinal chaining(?.) 사용하기

const user = {
    profile: {
        name: "르탄이",
        details: {
            age: 30,
            location: "서울시 강남구"
        },
    },
    printHello: () => console.log("Hello"); //메소드
};

//나이에 접근하고자한다면
console.log(user.profile2.details.age); // -> profile2는 없기때문에 에러가난다.
console.log(user.profile2?.details.age);
// -> optinal chaining(?.)을 사용하면 에러가 나지않고 undefined로 출력된다.

//printHello라는 메소드 출력하기
user.printHello(); // 출력 값 : "Hello"
user.printHello1(); // printHello1은 없기 때문에 애러가 난다.
user.printHello1?.(); // 함수가 실행되는 부분에 옵셔널 체이닝 넣으면 오류 안나고 그냥 아무것도 출력안됨
// -> 즉 undefined를 반환하게 된다.

---------------------------------------------------------------------------

// 6. Null병합 연산자(??) 사용하기
// 좌변이 Null, undefined일 때만 우변을 평가한다.
// 논리합 연산자와 비슷하다고 볼 수 있다.

// 사용자의 위치 설정이 없으면 "없는위치" 출력
let userLocation = null; // 바뀔 수 있기때문에 let으로 선언
console.log(userLocation ? userLocation : '없는위치');  // 출력 값 : 없는위치
// -> userLacation이 존재해? 그럼 보여주고, 아니면 "없는위치"를 반환해줘

// 똑같이 Null병합 연산자를 사용한다면
console.log(userLocation ?? '없는위치');  // 출력 값 : 없는위치
// -> userLacation이 존재해? 그럼 보여주고, 아니면 "없는위치"를 반환해줘

---------------------------------------------------------------------------

// Null병합 연산자(??)와 논리합 연산자(||)는 매우 닯았다.

// 논리합 연산자(||) 예시

const displayPerferencese = (perferencese) => {
	const textLength = perferencese.textLength || 50;
    // -> textLength는 perferencese.textLength가 truthy한 값이 아니라면 우측을 평가한다.
    console.log("1 =>", textLength);
    
    const itemsPerPage = perferencese.itemsPerPage ?? 10;
    // -> itemsPerPage는 perferencese(인풋)에 itemsPerPage가 Null, undefined일경우 우측을 평가한다.
    console.log("2 =>", itemsPerPage);
};

cons userPerference = {
	textLength: 0,
    itemPerPage: null,
};

displayPerferencese(userPerference); // 함수호출