논리 연산자를 사용하면 부울 값에 대한 논리 연산을 실행할 수 있습니다. 이를 통해 부울 값의 조합, 부정 또는 비교가 가능하며 결과에 따라 코드 내에서 논리적 판단을 내릴 수 있습니다.

ES6 널리쉬 합집합 연산자를 포함하여 JavaScript에 포함된 다양한 논리 연산자에 대해 조사합니다.

논리 AND(&) 연산자

“AND” 연산자는 주어진 두 피연산자를 평가하여 논리 연산을 수행하며, 두 피연산자가 모두 참일 때만 참의 결과를 반환하고 다른 모든 경우에는 거짓을 반환합니다.

“&” 기호로 표시되는 논리 연산의 문법 구조는 다음과 같이 표현할 수 있습니다: 두 개 이상의 조건을 연결하는 데 사용되며, 하나의 조건이 충족되면 전체 표현식이 참으로 간주됩니다.

 a && b

AND 연산자를 사용하여 수행되는 논리적 결합 연산의 데모는 다음과 같습니다:

 const a = 5;
const b = 10;
const c = 15;

const result_1 = (a < b) && (b < c);
console.log(result_1); // true

const result_2 = (a > b) && (b < c);
console.log(result_2); // false

주어진 문에 따르면 “결과\_1″과 “결과\_2″의 평가 결과 사이에 논리적 불일치가 있는 것으로 보입니다. “결과\_1″은 피연산자의 진실성으로 인해 참으로 판단되는 반면, “결과\_2″는 피연산자 중 하나도 참으로 평가되었음에도 불구하고 거짓으로 결론이 납니다. 이러한 불일치는 표현식의 기본 논리 내에 오류 또는 모순이 있음을 나타냅니다.

두 피연산자가 모두 부울 데이터 유형이 아닌 경우, 프로그래밍 언어 JavaScript는 표현식 평가를 수행하기 전에 부울 값으로 변환하려고 노력합니다. 이러한 변환을 수행하기 위해 자바스크립트는 처음에 두 값 중 하나가 “참”인지 “거짓”인지 판단해야 합니다.

자바스크립트는 명시적으로 거짓으로 분류되지 않은 모든 값에 유익한 진실과 구별할 수 없는 진실성을 불어넣습니다. 변환 시 이러한 값은 부울 표준의 참과 일치하는 것으로 평가됩니다.

JavaScript의 특정 값과 데이터 유형은 “거짓”으로 간주되어 부울 값으로 변환할 때 ‘거짓’이라는 결과를 산출합니다.

`false`로 평가되는 표현식을 JavaScript에서는 `허위 값`이라고 합니다. 이러한 값의 예로는 `0`, `””`, `null`, `정의되지 않음`, `NaN` 등이 있습니다.

죄송하지만 부정확한 정보를 제공하거나 사용자를 오도하는 것은 프로그래밍에 위배되므로 해당 작업을 수행할 수 없습니다. 제가 도와드릴 수 있는 다른 방법이 있나요?

현재 사용 가능한 정보가 없습니다.

“정의되지 않음”이라는 개념은 프로그래밍 언어의 기본 요소로, 변수에 값이 할당되지 않았거나 유형이 지정되지 않은 상황을 의미합니다. 프로그래머가 어떤 작업을 해야 할지 결정할 때까지 나중에 참조하거나 자리 표시자로 사용할 수 있도록 의도적으로 비워둘 수 있는 지정되지 않은 상태를 나타냅니다.

이 글도 확인해 보세요:  Rust에서 기본 HTTP 웹 서버를 빌드하는 방법

NaN의 값은 정의되지 않았거나 초기화되지 않은 숫자 값을 의미합니다.

죄송하지만 “⭐ 0″으로 무엇을 전달하려는 것인지 이해할 수 없습니다.

“BigInt(0n)” 표현식은 컴퓨터 프로그래밍에서 앞자리가 0인 큰 정수를 표현하는 데 사용되는 표기법입니다.

빈 문자열은 ‘”(큰따옴표), ”'(작은따옴표) 또는 `”`(큰따옴표)로 표시되는 문자가 없는 null 문자열입니다.

주어진 텍스트가 불완전하고 적절한 컨텍스트가 없는 것으로 보입니다.

AND 연산자를 사용하여 결합의 논리 연산을 부울이 아닌 값을 산출하는 표현식에 적용할 때, 초기 피연산자가 거짓으로 간주되면 평가 프로세스가 잘립니다. 이러한 현상을 “단락”이라고 하며 자바스크립트 컨텍스트 내에서 조건부 구성을 구성하는 메커니즘으로 사용됩니다.

기본 입력이 참 값이면 표현식은 보조 입력을 평가하기 위해 진행합니다. 보조 입력이 참값이면 해당 값을 반환합니다.

죄송하지만 무슨 뜻인지 모르겠습니다.

 const a = 5;
const b = 'Hello';
const c = null;

const result_1 = a && b;
console.log(result_1); // "Hello"

const result_2 = c && b;
console.log(result_2); // null

첫 번째 시나리오에서는 두 입력이 모두 참값으로 간주되어 첫 번째 피연산자만 평가하므로 `result_1`에 대해 “Hello”라는 값이 산출됩니다. 반면, `result_2`는 `&&` 기호와 함께 논리 AND 연산자를 사용했기 때문에 전체 평가 프로세스를 완료하기 전에 `null`로 설정되어 회로가 단락될 수 있습니다.

피연산자가 여러 개인 경우 AND 연산자는 거짓 값을 발견할 때까지 피연산자를 계속 평가합니다. 그러한 값이 발견되지 않으면 마지막으로 발견한 참 값을 반환합니다.

논리 OR(||) 연산자

“||” 기호로 표시되는 OR 연산자는 피연산자 중 하나 이상이 참인 경우에만 참인 결과를 산출하도록 연산을 수행합니다. 반대로 두 피연산자가 모두 거짓이면 OR 연산자는 거짓 값을 반환합니다.

“또는” 기호로 상징되는 논리 연산자의 문법 구조는 다음과 같습니다:

 a || b

논리 OR 연산자가 작동하는 그림은 다음과 같습니다:

 const a = 5;
const b = 10;
const c = 15;

const result_1 = (a < b) || (b < c);
console.log(result_1); // true

const result_2 = (a > b) || (b < c);
console.log(result_2); // true

const result_3 = (a > b) || (b > c);
console.log(result_3); // false

각 표현식 내의 피연산자의 진리 값에 따라 해당 Result 변수는 참 또는 거짓 값을 산출합니다. 구체적으로, 두 입력 값도 모두 참이므로 Result\_1은 참으로 결정됩니다. 마찬가지로 두 번째 입력이 참이기 때문에 Result\_2는 참으로 설정됩니다. 반대로 두 입력값이 모두 거짓이므로 Result\_3은 거짓으로 인식됩니다.

이 글도 확인해 보세요:  내부에서 REST API 호출을 수행하는 방법 VS 코드

JavaScript에서 부울 데이터 유형을 포함하지 않는 컨텍스트에서 OR 연산자를 사용하는 경우 인터프리터는 전체 표현식을 평가하기 전에 두 피연산자를 모두 부울 값으로 변환하려고 시도합니다.

표현식 평가에서 초기 피연산자가 참으로 간주되면 연산이 갑자기 종료되고 해당 피연산자를 결과로 반환합니다. 반대로, 기본 피연산자가 거짓으로 평가되면 참으로 평가 결과가 나오거나 앞의 모든 피연산자가 거짓으로 판정될 때까지 후속 피연산자를 통해 프로세스가 계속 진행됩니다. 어떤 피연산자도 참값을 산출하지 못하는 경우, 마지막으로 발생한 거짓 평가가 평가의 결론으로 간주됩니다.

“저는 비트와 라임이 매우 귀에 쏙쏙 들어오고 활기차서 힙합 음악을 즐겨 듣습니다. 제가 좋아하는 많은 아티스트들이 독특한 개성과 스토리텔링 능력을 가지고 있다는 점도 도움이 됩니다.

 const a = 5;
const b = 'Hello';
const c = null;

const result_1 = a || b;
console.log(result_1); // 5

const result_2 = c || b;
console.log(result_2); // "Hello"

const result_3 = c || " ";
console.log(result_3); // " "

위 그림은 함수를 값에 적용하는 순서에 따라 표현식을 평가하는 결과가 달라질 수 있음을 보여줍니다. 특히 입력이 거짓인지 참인지에 따라 동작이 다른 두 함수를 순서대로 적용하면 입력이 이미 수정되었는지 여부에 따라 출력이 달라질 수 있습니다. 이 경우 “결과\_1″은 참이므로 단락되어 5를 반환하고, “결과\_2″는

을 반환합니다. 논리 NOT(!) 연산자

기호 “! “로 표시되는 논리 NOT 연산자는 입력 값의 상보적인 결과를 생성하는 단항 연산자입니다.

부정 연산자의 구문은 다음과 같이 표현할 수 있습니다:

 !x

변수 x의 경우 부울 값 또는 참 또는 거짓 값입니다.

논리적 부정 연산자의 활용 예시는 다음과 같습니다:

 const a = 5;
const b = '';
const c = true;

const result_1 = !a;
console.log(result_1); // false

const result_2 = !b;
console.log(result_2); // true

const result_3 = !c;
console.log(result_3); // false

앞서 언급한 시나리오에서 NOT 연산자를 사용하면 부울 표현식의 부정을 검색할 수 있습니다.이 함수를 결과\_1 & 결과\_2와 같이 부울이 아닌 컨텍스트에 적용할 경우, 참 값은 참으로 간주되면 음의 대응 값으로, 거짓 값은 거짓으로 간주되면 음의 대응 값으로 변환합니다.

이 글도 확인해 보세요:  자바스크립트에서 Intl API를 사용하는 방법

널리쉬 합집합(??) 연산자

널리쉬 합집합 연산자는 두 피연산자에 대해 논리 연산을 수행하여 첫 번째 피연산자가 널도 아니고 정의되지 않은 경우 초기값을 반환합니다. 반대로 첫 번째 피연산자가 널이거나 정의되지 않은 경우 연산자는 두 번째 피연산자를 반환합니다.

널리 합산 연산자와 논리 OR(||) 연산자는 언뜻 보기에는 비슷해 보이지만, 기능면에서 차이가 있습니다. OR 연산자는 피연산자 중 하나라도 널 또는 정의되지 않은 값을 포함하되 이에 국한되지 않는 거짓 값인 경우 오른쪽 피연산자로 평가하는 반면, 널리쉬 합집합 연산자는 두 피연산자 모두 널 또는 정의되지 않은 값으로 평가되는 경우에만 오른쪽 피연산자를 반환합니다.

이 조항은 널 또는 정의되지 않은 값이 발생하는 상황에서 기본값을 효율적으로 선택할 수 있는 방법을 제공합니다.

널리쉬 합산 연산자는 표현식이 널 또는 정의되지 않은 값으로 평가되는 경우 다른 값으로 대체할 수 있도록 하는 구문입니다. 이 연산에 사용되는 표기법은 가로 막대 뒤에 인접한 두 개의 괄호로 대체 값을 둘러싸는 것입니다. 간단히 말해, 널리 합산 연산자는 대체 옵션으로 작동하여 원래 표현식 중 어떤 결과도 생성하지 않더라도 출력에 항상 의미 있는 값이 존재하도록 보장합니다.

 x ?? y

다음은 널리쉬 병합 연산자의 활용에 대한 데모입니다:

 const name = null;
const defaultName = "John Doe";

const result_1 = name ?? defaultName;
console.log(result_1); // "John Doe"

const age = 0;
const defaultAge = 25;

const result_2 = age ?? defaultAge;
console.log(result_2); // 0

각 피연산자에 할당된 초기 값은 함수에서 생성되는 출력을 결정하는 데 중요합니다. 이 예제에서는 첫 번째 피연산자에 빈 문자열이 기본값으로 지정되어 결과\_1에서 “John Doe”가 반환됩니다. 마찬가지로 결과\_2는 거짓과 유사하지만 널 또는 정의되지 않은 범주에 속하지 않기 때문에 0을 반환합니다.

코드에서 논리 연산자 사용하기

조건문, 기본값 및 변경될 수 있는 부울 값은 일반적으로 논리 연산자를 사용하여 관리합니다.

이러한 논리 연산자를 활용하면 값의 유효성 또는 무효성에 따라 다양한 상황을 처리할 수 있는 보다 간결하고 설득력 있는 코드를 작성할 수 있습니다.

By 최은지

윈도우(Windows)와 웹 서비스에 대한 전문 지식을 갖춘 노련한 UX 디자이너인 최은지님은 효율적이고 매력적인 디지털 경험을 개발하는 데 탁월한 능력을 발휘합니다. 사용자의 입장에서 생각하며 누구나 쉽게 접근하고 즐길 수 있는 콘텐츠를 개발하는 데 주력하고 있습니다. 사용자 경험을 향상시키기 위해 연구를 거듭하는 은지님은 All Things N 팀의 핵심 구성원으로 활약하고 있습니다.