반응형
단축 평가 논리 계산법이란, 이름은 거창하지만 사실 별거 없다. 논리 연산자를 사용해서 코드를 더 짧게 작성하는 것을 의미한다.
코드를 통해 알아보자.
const dog = { name: "멍멍이", }; function getName(animal) { if (animal) { return animal.name; } return undefined; } const name = getName(dog); console.log(name); // 멍멍이
위 코드는 getName 함수의 파라미터인 animal이 있으면 그 객체의 name을 출력해주고 없을 경우 undefined를
출력하는 코드이다.
const dog = { name: "멍멍이", }; function getName(animal) { return animal && animal.name; } const name = getName(dog); console.log(name); // 멍멍이
다음과 같이 getName함수의 길이를 줄일 수 있다. 받아온 animal 객체에 name이 있으면 리턴해서 출력하고
없을 경우 undefined를 출력한다.
console.log(true && "hello"); // hello console.log(false && "hello"); // false console.log("hello" && "bye"); // bye console.log(null && "hello"); // null console.log(undefined && "hello"); // undefined console.log('' && "hello"); // ''
다음과 같은 결과가 나오기 때문에 위에서의 코드 길이 단축이 가능하다.
&& 연산자를 사용하면 앞의 값이 true일 경우 오른쪽의 코드가 실행되고 false일 경우 왼쪽의 코드가 실행된다.
이와 같은 사용법을 알고 있으면 나중에 아주 유용할 것이다.
특히, React에서는 이것을 사용해 조건부 랜더링을 할 수 있다.
주로 특정 값이 유효할 때만 어떤 값을 조회해야 하는 상황에 사용한다.
const namelessDog = { name: "", }; function getName(animal) { const name = animal && animal.name; return name || "이름이 없는 동물입니다."; } const name = getName(namelessDog); console.log(name); // 이름이 없는 동물입니다.
다음과 같이 || 연산자도 사용할 수 있다.
console.log(false || "hello"); console.log("" || "이름없다."); console.log(null || "널이다~"); console.log(undefined || "defined 되지 않았다!"); console.log(1 || "음?"); console.log(true || "여기 안본다. ");
|| 연산자는 && 연산자와는 반대이다. 앞의 값이 true일 경우 왼쪽의 코드가 실행되고 false일 경우 오른쪽의 코드가
실행된다.
반응형
'JavaScript' 카테고리의 다른 글
JavaScript: spread와 rest (...) (0) | 2021.07.14 |
---|---|
JavaScript: 비구조화 할당 (0) | 2021.07.14 |
JavaScript: 프로토타입과 클래스 (0) | 2021.07.09 |
JavaScript: 배열 내장함수 (forEach, map, indexOf, findIndex, find, filter, splice, splice, shift, pop, unshift, push, concat, join, reduce) (0) | 2021.07.08 |
Getter와 Setter 함수 (0) | 2021.07.01 |