>웹 프론트엔드 >JS 튜토리얼 >JavaScript 논리 연산자는 어떻게 객체를 반환할 수 있나요?

JavaScript 논리 연산자는 어떻게 객체를 반환할 수 있나요?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-26 15:11:09221검색

How Can JavaScript Logical Operators Return Objects?

JavaScript의 논리 연산자 이해: 객체를 반환할 수 있는 이유

JavaScript에서 &&(and) 및 ||와 같은 논리 연산자는 (또는)은 일반적으로 부울 값(true 또는 false)으로 평가될 것으로 예상됩니다. 그러나 특정 시나리오에서는 개체를 반환할 수도 있습니다. 이 놀라운 동작은 처음에는 당황스러울 수 있습니다.

이 현상을 자세히 알아보기 위해 다음 코드 조각을 분석해 보겠습니다.

var _ = (obj.fn && obj.fn()) || obj._ || (obj._ = {});

var _ = obj && obj._;

첫 번째 예에서는 obj.fn이 처음에 평가됩니다. 정의된 경우 obj.fn() 표현식의 결과가 반환됩니다. 그렇지 않으면 obj._ 표현식이 평가되거나, obj.fn이나 obj._가 모두 존재하지 않으면 새 객체가 생성됩니다.

마찬가지로 두 번째 예에서는 obj가 먼저 평가됩니다. obj가 존재하는 경우(true로 평가됨) 결과는 obj._의 값입니다. 그러나 obj가 존재하지 않는 경우(false로 평가되는 경우) 원래 obj 값 자체가 반환됩니다.

논리적 단락 동작 공개

이 동작은 && 및 ||의 논리적 단락 특성에서 비롯됩니다. 즉, 이러한 연산자는 결과가 이미 명확한 불필요한 평가를 피하기 위해 가능한 한 빨리 "논리 값"을 반환하려고 시도합니다.

||의 경우 왼쪽 표현식이 다음과 같이 평가되면 true인 경우 즉시 반환되며 오른쪽 표현식은 전혀 평가되지 않습니다. 반대로 왼쪽 표현식이 false로 평가되면 오른쪽 표현식이 평가되어 반환됩니다.

JavaScript의 거짓 및 값 반환

다른 측면은 이 동작에 영향을 미치는 것은 JavaScript에서 거짓 값이 처리되는 방식입니다. JavaScript의 거짓 값에는 false, 0, NaN, 빈 문자열, null 및 정의되지 않음이 포함됩니다.

JavaScript 버전 1.2 이전에는 || 표현식이 false로 평가되면 false를 반환했습니다. 그러나 버전 1.2부터는 표현식의 실제 값을 반환합니다. 즉, 왼쪽 표현식이 false이면 오른쪽 표현식의 값이 반환됩니다.

마찬가지로 &&의 경우 왼쪽 표현식이 true로 평가되면 오른쪽 표현식이 반환됩니다. 평가되어 그 값이 반환됩니다. 다만, 왼쪽 표현식이 false로 평가되면 JS 1.0, 1.1에서는 false가 반환되고, JS 1.2부터는 왼쪽 표현식의 값이 반환됩니다.

결론

논리적인 단락 동작과 JavaScript의 거짓 값 처리를 이해하는 것은 때로는 놀라운 논리 연산자의 반환 값이 있습니다. 이러한 연산자는 효율성을 우선시하며 거짓은 JavaScript에서 다르게 해석될 수 있다는 점을 인식함으로써 이러한 연산자의 복잡성을 자신 있게 탐색할 수 있습니다.

위 내용은 JavaScript 논리 연산자는 어떻게 객체를 반환할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.