2011-08-19 3 views

답변

25

연산자는 왼쪽 피연산자가 true로 평가되면 반환하고 그렇지 않으면 오른쪽 피연산자를 계산하여 반환합니다. 즉, a || ba ? a : b과 같습니다. 단, a은 한 번만 평가됩니다.

+1

+1 또한 JavaScript에서 * null 병합 연산자 *라고합니다. http://stackoverflow.com/questions/476436/null-coalescing-operator-for-javascript/476445#476445 – naveen

+1

아니요, C#의 널 통합 연산자 ('??')에 대한 대체 *. :)''널 병합 오퍼레이터 (null coalescing operator) '라고 불리는''||' '을 결코 들어 본 적이 없습니다. 항상 "논리 또는"연산자였습니다. – cdhowie

+0

이 동의했습니다. OP의 이전 질문에서 그는 ASP.NET 배경에서 왔으며 왜이 설명을했는지. – naveen

2

myObj가 이미 정의되어 있지 않으면 초기화됩니다.

1

|| 단락 회로 운영자입니다. 첫 번째 피연산자가 true로 평가되면 두 번째 피연산자는 평가되지 않습니다.

따라서 JS a || b는 # a ?? b

0

경우 myObj 미정이거나 널 후 그것을 경우

너무 myObj 인 빈 객체 중 하나를 myObj로를 생성 || 오른쪽의 표현식을 평가 C와 같은 무언가 myObj로 난 당신이 무슨 뜻인지 이해를 바랍니다

null의 경우는 null 또는 빈 객체가 아닌

+1

또한 'myObj'의 값이 false 또는 0 또는 NaN이거나 빈 문자열 인 경우 변수에 새 객체가 지정됩니다. ** ** 정의되지 않았거나 null이 아닙니다. 자바 스크립트에는 6 가지 오류가 있습니다. –

+0

@Ray Toal : 추가해 주셔서 감사합니다. – Fender

1

는 OR 연산 (||) 것 첫 번째 비어 있지 않은/거짓 매개 변수를 반환합니다. myObj로는 허위 또는 null의 경우, 지정된 경우

이, 그것은 빈 개체로 설정됩니다 당신은 객체를 얻기 위해이 구조를 사용할 수 있습니다

1

을합니다 ({} 괄호는 객체를 생성하는 데 사용됩니다) null, undefined 등이 아닙니다.이 코드는 나중에 객체로 사용해야하는 코드에서 myObj을 사용하는 경우에 사용됩니다. 어떤 이유로이 줄 앞에 myObj이 정의되지 않은 경우 다시 할당하면 undefined 또는 null으로 남게됩니다.이 경우 {}이 할당됩니다.

당신은로 생각할 수 있습니다

:

// If the object is already defined 
if (myObj) 
    var myObj = myObj; 
// It was undefined or null, so assign an empty object to it. 
else 
    var myObj = {}; 
2

가 이해하기 || operator, 우선 기본 예제를 살펴 보겠습니다. 막대 falsy 간주하는 경우이 경우

var bar = false, 
foobar = 5, 
foo = bar || foobar; // foo = 5 

는 푸 만는 foobar의 값이 할당 될 다음과 같다 : 논리 OR 연산자는 정의 된 변수에 대한 디폴트 값을 제공하는데 사용될 수있다. 위증 된 값은 0, 거짓, 정의되지 않음, null, NaN 또는 비어있는 것으로 간주 될 수 있습니다 (예 : "").