JavaScript의 논리 연산자: 부울이 아닌 결과 이해
항상 숫자 값을 반환하는 수학 연산자와 달리 논리 연산자(&& 및 | |) JavaScript에서는 때때로 부울 대신 객체를 반환할 수 있습니다. 이는 특히 조건부 검사에 사용하려고 할 때 직관에 어긋날 수 있습니다.
객체가 반환되는 이유
|| 및 && 연산자는 논리적 단락 연산자입니다. 즉, 피연산자를 왼쪽에서 오른쪽으로 평가하고 완전히 결정된 첫 번째 논리 값을 반환합니다. JavaScript에서 이 값은 true 또는 false일 수 있지만 객체일 수도 있습니다.
조건부 논리 이해
X || Y, X가 먼저 평가되어 부울 값으로 해석됩니다. X가 true이면 즉시 반환되고 Y는 평가되지 않습니다. 이는 표현식이 이미 true로 결정되었기 때문입니다.
X가 false이면 Y가 평가되고 해당 부울 값이 반환됩니다.
마찬가지로 &&는 첫 번째 인수가 있으면 평가를 중지합니다. 거짓입니다.
"거짓"의 트릭
첫 번째 혼란은 표현식이 "true"로 평가되면 표현식 자체가 반환되기 때문에 발생합니다. 이것이 논리식에서 실제 값이 반환되는 것을 볼 수 있는 이유입니다.
The Trick with Null
두 번째 혼동 지점은 다양한 버전의 JavaScript 동작에서 비롯됩니다. 처음에는 "false" 표현식에 대해 false를 반환했지만 버전 1.2부터는 표현식의 실제 값을 반환합니다.
예
설명:
var _ = (obj.fn && obj.fn()) || obj._ || (obj._ = {}); // Returns obj.fn() if defined, otherwise obj._ var _ = obj && obj._; // Returns obj._ if obj is true, otherwise obj
위 내용은 JavaScript 논리 연산자가 때때로 부울 대신 개체를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!