0

나는 Mozilla Developer Network's page on Javascript을 통해 읽고 있는데, 나는 알기 쉬운 줄로 혼란 스럽다. 여기에 문제의 설명과 라인의 다음 & & 및기본 자바 스크립트, 간단한 변수 할당/로직 문 평가

는 || 연산자는 단락 논리를 사용합니다. 즉, 두 번째 피연산자를 실행할지 여부는 첫 번째 피연산자에 의존합니다. 이것은 그들의 속성에 접근하기 전에 널 (null) 개체를 확인하는 데 유용하다 :

var name = o && o.getName(); 

여기 내 혼란은 아마도 조각의 목적이 수행하는 점이다 :

var name; 
if (o){ 
    name = o.getname(); 
} 

그러나, 그것은처럼 보인다 여기서 일어나는 일은 이름이 부울로 지정되고 그 부울은 "존재하고 그 이름은 비어 있지 않습니다"라는 것입니다. 다른 말로 표현하면 다음과 같습니다.

var name = false; 
if (o && o.getname()){ 
    name = true; 
} 

감사합니다.

+2

맨 위에있는 [** 논리 연산자 **] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators)를보십시오. * "논리 연산자는 일반적으로 부울 (논리) 값과 함께 사용되며 부울 값이있는 경우 부울 값을 반환하지만 && 및 || 연산자는 지정된 피연산자 중 하나의 값을 실제로 반환하므로 이러한 연산자가 * –

+1

간단히 말해서, '&&'는 가장 왼쪽의 falsy 피연산자를 반환하거나, 모든 피연산자가 참인 경우 마지막 피연산자를 반환하고, 가장 왼쪽의 피연산자 피연산자 인'||'를 반환합니다. 모두가 위증이라면 마지막 것. – raina77ow

+0

귀하의 질문은 무엇입니까? 그렇습니다. 스 니펫은 무언가를하지만, 여러분에게는 뭔가를해야합니다. 그렇다면 질문은 무엇입니까? * 왜? * 그것이 컴파일 된 방법이기 때문에 ... –

답변

2

이 답변 Felix Kling의 의견이며 나는 그가 맨 위에, Logical Operators


되세요 보상 평판에게보고를 얻기 위해 자신의 답변으로 게시되기를 바랍니다 :

"논리 연산자는 일반적으로 부울 (논리) 값과 함께 사용되며 부울 값이있는 경우 부울 값을 반환하지만 & & 및 || 연산자는 실제로 r 지정된 피연산자 중 하나의 값을 반환하므로 이러한 연산자가 부울이 아닌 값과 함께 사용되면 부울이 아닌 값을 반환 할 수 있습니다. "