>웹 프론트엔드 >JS 튜토리얼 >JavaScript의 `||` 연산자: 표준 논리 OR과 어떻게 다릅니까?

JavaScript의 `||` 연산자: 표준 논리 OR과 어떻게 다릅니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-25 14:33:10672검색

JavaScript's `||` Operator:  How Does it Differ from a Standard Logical OR?

논리 OR 연산자(||)와 JavaScript의 변형

이중 파이프 연산자(||) 이해

대부분의 프로그래밍 언어에서 이중 파이프 연산자(||)는 논리 OR 연산자를 나타냅니다. 두 개의 부울 값을 평가하고 다음 규칙을 따릅니다.

  • 첫 번째 값이 false이면 두 번째 값을 확인합니다. true이면 true를 반환합니다. 그렇지 않으면 false입니다.
  • 첫 번째 값이 true이면 두 번째 값에 관계없이 true를 반환합니다.

JavaScript의 해석

단 , JavaScript 핸들 || 느슨하게 입력된 언어이기 때문에 다릅니다. 이는 다음을 의미합니다:

  • 부울이 아닌 값: JavaScript에서는 || 부울이 아닌 값을 사용합니다. 값이 false인 경우(예: 0, "", null) false로 처리됩니다. 그렇지 않으면 true입니다.
  • 결과 수정: JavaScript의 || 연산자는 첫 번째 값이 false인 경우 두 번째 값을 반환합니다. 그렇지 않으면 첫 번째 값을 반환합니다.

예:

(function(){}) || {}  // True (empty function is truthy)

JavaScript의 실제 사용법

기본 기능 매개변수:

function (title, msg) {
  var title = title || 'Error';  // Assigns 'Error' if title is falsy
  var msg = msg || 'Error on Request';  // Assigns 'Error on Request' if msg is falsy
}

잘못된 프로그래밍 관행:

할당 || 변수에 직접 표현식을 사용하는 것은 잘못된 값을 매개변수로 전달하는 것을 방지하므로 권장되지 않습니다. 다음 기능을 고려하세요.

function badFunction(flagA) {
  flagA = flagA || true;  // FlagA always becomes true, even if passed false
}

더 나은 연습:

대신 명시적인 허위 검사를 사용하세요.

function goodFunction(flagA) {
  flagA = typeof flagA !== "undefined" ? flagA : true;  // Sets to true only if undefined
}

ES6 구문 기본 매개변수:

function goodFunction(flagA = true) {  // Sets to true only if omitted
}

결론:

JavaScript의 || 연산자는 다른 언어에 비해 독특한 동작을 가지고 있습니다. 기본값을 설정하는 데 편리하지만 예상치 못한 결과와 잘못된 값 재정의를 방지하려면 주의해서 사용해야 합니다.

위 내용은 JavaScript의 `||` 연산자: 표준 논리 OR과 어떻게 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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