JavaScript의 단락

Migel Hewage Nimesha 2024년2월15일
  1. JavaScript 논리 AND 연산자
  2. JavaScript 논리 OR 연산자
  3. JavaScript의 단락
JavaScript의 단락

모든 프로그래밍 언어는 산술, 할당, 비교 및 논리 연산자와 같은 다양한 연산자를 지원합니다. JavaScript와도 차이가 없습니다. 대부분의 프로그래밍 언어가 지원하는 모든 연산자를 지원합니다.

이 가이드에서는 논리 연산자와 단락 기능에 중점을 둡니다.

JavaScript 논리 AND 연산자

논리 ANDOR 연산자는 결국 참 또는 거짓으로 평가되는 두 가지 인기 있는 논리 연산자입니다. 논리 AND 연산자는 두 피연산자가 모두 참인 경우에만 참으로 평가됩니다. 그렇지 않으면 항상 false를 반환합니다.

또한 AND 연산자는 피연산자 중 하나가 거짓이면 거짓을 반환합니다.

console.log(false && true);
console.log(false && false);
console.log(true && false);
console.log(true && true);

출력:

논리 AND 연산자

JavaScript 논리 OR 연산자

논리 AND 연산자와 달리 논리 OR 연산자는 피연산자 중 하나가 참이면 참을 반환합니다. 두 피연산자가 모두 거짓일 때마다 이 연산자는 거짓 결과를 제공합니다.

console.log(false || true);
console.log(true || false);
console.log(true || true);
console.log(false || false);

출력:

논리적 OR 연산자

JavaScript의 단락

JavaScript는 표현식 내에서 왼쪽에서 오른쪽으로 위의 두 연산자를 평가합니다. 최악의 시나리오에서는 처음(왼쪽 끝)부터 시작하여 모든 피연산자가 평가될 때까지 오른쪽 끝으로 평가합니다.

단락이 있는 경우에는 그렇지 않습니다. JavaScript 단락 메커니즘을 사용하면 나머지 피연산자의 결과가 이미 평가된 결과 값에 영향을 미치지 않을 때까지 표현식이 왼쪽에서 오른쪽으로 평가됩니다.

논리 AND 연산자의 단락

논리 AND 연산자는 첫 번째 피연산자가 false인 경우 단락됩니다. 후속 피연산자가 참인지 거짓인지에 관계없이 표현식은 거짓으로 평가됩니다.

따라서 JavaScript 런타임은 표현식의 나머지 피연산자를 평가하지 않습니다.

위의 동작을 보여주는 다음 예제를 살펴보겠습니다.

console.log(true && 'it should come here and print me.');

출력:

AND 연산자 단락 출력 1

첫 번째 피연산자가 true이므로 이 식은 단락되지 않습니다. 따라서 다음 피연산자도 평가합니다. 예상대로 두 번째 피연산자 값이 콘솔에 출력되었습니다. 이는 JavaScript가 두 피연산자를 모두 평가했음을 의미합니다.

다음으로 false를 첫 번째 피연산자로 사용합니다.

console.log(false && 'short-circuits and will not print me');

출력:

AND 연산자 단락 출력 2

예상대로 출력은 거짓이며 JavaScript는 두 번째 피연산자를 더 이상 평가하지 않습니다. 그것은 표현이 단락되었음을 의미합니다.

논리 OR 연산자의 단락

논리 AND 연산자와 달리 논리 OR 연산자는 아래와 같이 첫 번째 피연산자가 참일 때 단락됩니다.

console.log(true || 'i will not be printed');

출력:

OR 연산자 단락 출력

보시다시피 출력은 true이므로 두 번째 피연산자는 평가되지 않습니다.

Short-circuiting은 원하지 않는 코드 부분을 무시하고 효율적인 처리를 지원하는 JavaScript의 유용한 기능입니다.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

관련 문장 - JavaScript Operator