serin99
serin 개발 일기
serin99
전체 방문자
오늘
어제
  • 분류 전체보기 (76)
    • FE (25)
      • JavaScript (14)
      • React (6)
      • Web (5)
    • IT (22)
      • [FE] 위클리 페이퍼 (19)
      • CS (2)
    • Project (4)
    • Python (8)
    • DB (2)
    • IoT (14)
      • 라즈베리파이 (9)
      • 아두이노 (4)

태그

  • 라즈베리파이
  • 부트캠프
  • 자바스크립트
  • 프로그래밍
  • Python

인기 글

최근 글

최근 댓글

티스토리

hELLO · Designed By 정상우.
serin99

serin 개발 일기

FE/JavaScript

📖 [JS] 자바스크립트에서의 단락

2024. 7. 19. 17:09
728x90




자바스크립트에서 단락 평가(short-circuit evaluation)는 논리 연산자(&& 및 ||)를 사용할 때,

전체 표현식을 평가하지 않고도 결과를 결정할 수 있는 경우 평가를 중단하는 방법을 말합니다.

이는 성능 향상 및 불필요한 코드 실행 방지에 유용합니다.


 

논리 AND (&&)

 

&& 연산자는 왼쪽에서 오른쪽으로 평가됩니다. 첫 번째 피연산자가 false로 평가되면, 전체 표현식은 false가 되므로 나머지 피연산자는 평가되지 않습니다.

 

const a = false && console.log("이 코드는 실행되지 않습니다.");
console.log(a); // false

 

위 예제에서 false가 첫 번째 피연산자이기 때문에 console.log는 실행되지 않고, 표현식 전체는 false로 평가됩니다.

반대로, 첫 번째 피연산자가 true로 평가되면 두 번째 피연산자가 평가됩니다.

const b = true && console.log("이 코드는 실행됩니다.");
// 이 코드는 실행됩니다.
console.log(b); // undefined

 


 

논리 OR (||)

 

|| 연산자는 왼쪽에서 오른쪽으로 평가됩니다. 첫 번째 피연산자가 true로 평가되면,

전체 표현식은 true가 되므로 나머지 피연산자는 평가되지 않습니다.

 

const c = true || console.log("이 코드는 실행되지 않습니다.");
console.log(c); // true

 

 

위 예제에서 true가 첫 번째 피연산자이기 때문에 console.log는 실행되지 않고, 표현식 전체는 true로 평가됩니다.

반대로, 첫 번째 피연산자가 false로 평가되면 두 번째 피연산자가 평가됩니다.

 

const d = false || console.log("이 코드는 실행됩니다.");
// 이 코드는 실행됩니다.
console.log(d); // undefined

 


 

실용적 예

 

단락 평가는 기본값 설정이나 함수 호출을 제어하는 데 자주 사용됩니다.

 

 

기본값 설정

변수에 기본값을 설정할 때 || 연산자를 사용할 수 있습니다.

let userInput;
let defaultValue = "기본값";
let value = userInput || defaultValue;
console.log(value); // "기본값"

 

함수 호출 제어

 

조건에 따라 함수가 호출되는 것을 제어할 때 && 연산자를 사용할 수 있습니다.

let isAuthenticated = true;

isAuthenticated && console.log("사용자가 인증되었습니다."); // "사용자가 인증되었습니다."

 

이와 같이, 단락 평가는 코드의 효율성을 높이고 불필요한 연산을 피하는 데 유용하게 사용할 수 있습니다.

728x90

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

📖 [JS] Spread 연산자 & Rest 매개변수  (0) 2024.07.19
📖 [JS] 구조 분해 할당  (0) 2024.07.19
📖 [JS] 자바스크립트에서 "truthy"와 "falsy"  (0) 2024.07.19
📖 [JS] 배열  (0) 2024.07.19
📖 [JS] 객체  (0) 2024.07.18
    'FE/JavaScript' 카테고리의 다른 글
    • 📖 [JS] Spread 연산자 & Rest 매개변수
    • 📖 [JS] 구조 분해 할당
    • 📖 [JS] 자바스크립트에서 "truthy"와 "falsy"
    • 📖 [JS] 배열
    serin99
    serin99
    FE 개발자가 되기 위해 공부하는 사람

    티스토리툴바