728x90
단축평가란 왼쪽부터 오른쪽으로 평가를 진행하여,
논리연산자 &&와 || 에 따라 다른 결과를 반환한다.
&&는 and, || 는 or를 의미한다.
아래의 에러 핸들러에서 || 연산자가 사용되었다.
const globalErrorHandler = (err, req, res, next) => {
console.error(err);
err.statusCode = err.statusCode || 500;
res.status(err.statusCode).json({ message: err.message });
};
단축평가는 왼쪽부터 평가되기 때문에 || 연산자의 경우 왼쪽 값이 true라면 그 값을 반환하고,
false라면 오른쪽 값을 반환한다.
위 코드에서 err.statusCode에 값이 있다면 truthy한 것으로 평가되어 해당 err.statusCode가 반환된다.
반면 err.statusCode가 undefined라면 falsey 하기 때문에 오른쪽 값이 500이 반환된다.
아래는 && 연산자를 사용한 예시이다.
const conditions = [
subId && `WHERE sc.id = ${subId}`,
mainId && `WHERE m.id = ${mainId}`,
pId && `WHERE p.id = ${pId}`,
isMain && `WHERE p.main_product = ${isMain}`,
].filter(Boolean);
마찬가지로 왼쪽부터 평가를 하지만, &&의 경우 왼쪽 값이 true라면 오른쪽 값을 반환한다.
반면 왼쪽값이 false라면 오른쪽값은 평가하지 않고 바로 false를 반환한다.
참고한 블로그:
https://curryyou.tistory.com/193
[자바스크립트] 논리연산자(&&, ||) 단축평가
# 단축평가란? ||(논리합), &&(논리곱) 연산자는 왼쪽부터 오른쪽으로 평가를 진행하는데, 중간에 평가 결과가 나오면 오른쪽 끝까지 가지 않고 평가 결과를 반환해 버린다. 이를 '단축 평가(short ci
curryyou.tistory.com
728x90
'Node.js > JavaScript' 카테고리의 다른 글
[js 메서드] 배열.slice() (0) | 2023.06.13 |
---|---|
[JS문법] ...(three dots, 점 세개)의 사용법 두 가지(객체/배열 vs 함수) (0) | 2023.05.10 |
[node.js 메서드] 스트링으로 묶인 배열을 배열로 바꾸기 (0) | 2023.04.05 |
[키워드 정리] 자바스크립트에서 '구조분해'란 무엇인가 (0) | 2023.04.01 |
[js메서드] module export의 2가지 방식 (0) | 2023.03.27 |