2013-01-22 3 views
2

가능한 중복 :의 의미는
What does “options = options || {}” mean in Javascript?|의 의미 || 자바 스크립트 인수

무엇 || 두 번째 주장에서?

var obj = this; 
    var settings = $.extend({ 
     param: 'defaultValue' 
    }, options || {}); 

아무도 그 문자 ("|")를 여기 또는 Google에서 검색하는 방법을 알고 있다면 좋을 것입니다! 고마워요

+1

논리 'OR'을 의미합니다. – datasage

+0

http://stackoverflow.com/questions/2100758/javascript-or-variable-assignment-explanation –

+0

질문의 마지막 부분에 대답하려면 "javascript logical or assignment statement"또는 비슷한 것을 검색하고 싶을 것입니다. – jbabey

답변

0

|| = 또는

비교 연산자에서와 같습니다.

+0

이 질문에 대한 답변을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남기십시오. 자신의 게시물에 언제나 댓글을 달 수 있으며, 충분한 평판을 받으면 (http://stackoverflow.com/faq#reputation) [모든 게시물에 댓글 달기] (http://stackoverflow.com/privileges/comment). –

+0

감사합니다. 나는 그것을 염두에 두겠다. – DrCorduroy

1

이는 대체 값 또는 기본값입니다. 오브젝트가 null 또는 false의 경우, 2 번째의 값이 사용됩니다.

9

이는 논리 OR입니다. 명령문은 발견 된 첫 번째 진리 -Y 값을 리턴합니다.

이 경우 options이 null (또는 truth-y가 아닌 다른 값)이면 false로 평가됩니다. ||은 빈 객체를 반환합니다.

+1

다음은 [** 허위 사실에 대한 종합 목록 **]입니다 (http://es5.github.com/#x9.2). – phant0m

+1

그건 논리적 인 OR가 아닙니다, 그렇죠? 논리 OR 결과가 값 중 하나가 아닌 부울을 반환하지 않을까요? 이것은 더 이상 null-coalesce IMO와 같습니다. –

+0

@StefanH 아니요, 항상 부울을 반환하는 것은 아니며 피연산자 중 하나를 반환합니다. – phant0m

1

이 시나리오에서 더 중요하게 옵션이 정의되지 않은 경우 빈 개체 {}이 인수로 전달됩니다. 논리 OR 연산자의 부작용 유스 케이스입니다. 보다 구체적으로, 단락 회로를 사용합니다. 아래의 경우에 예를 들어

a || b 

a 경우는 실행되지 없구요, 다음에 b 사실이지만, a이 false 인 경우 다음 b이 실행됩니다. 따라서 예에서 표시된 것처럼 options이 정의되어 있지 않고 false 인 경우 {}이 실행되어 매개 변수로 전달됩니다.

0

|| = "OR". 예 :

질문에

alert(false || false || false || "I'm valid!"); // alerts "I'm valid"

, 위의 예는이 옵션의의 기능은 객체를 필요로 보여줍니다. 이 경우 "options"로컬 변수를 사용할 수없는 경우 빈 객체 만 전달하십시오. 나중에 호출되는 함수에서 새 객체의 기본값을 설정하는 것입니다.

관련 문제