>  기사  >  웹 프론트엔드  >  js의 && 및 || 예제에 대한 심층적인 이해

js의 && 및 || 예제에 대한 심층적인 이해

零下一度
零下一度원래의
2017-07-19 22:32:041515검색

두 가지 질문으로 시작해 보겠습니다.

a && b가 true를 반환하는 첫 번째 질문, b && a가 6을 반환하는 이유

1 var user = 6;2 var both = true;3 4 console.log( user && both);    //true5 console.log( both && user);    //6

두 번째 질문은 둘 다 감소를 수행하고 최종 인쇄된 값은 여전히 ​​3

1 var user = false;2 var both = 3;3 4 console.log( user && both--);    // false5 console.log(both);   // 3
입니다.

먼저 세 가지 수준에서 이해합니다( &&를 예로 들어):

1단계 이해: 피연산자가 모두 부울 값인 경우 둘 다 참인 경우에만 결과가 참이고, 그렇지 않으면 거짓입니다.

두 번째 수준 이해: &&는 참 값과 거짓 값에 대해 작동할 수 있습니다. 둘 다 참 값이면 참 값이 반환되고, 그렇지 않으면 거짓 값이 반환됩니다. 단, true 값은 true로 제한되지 않으며, false 값은 false로 제한되지 않습니다. 다음 값은 false로 변환됩니다(다른 값은 모두 true)

undefine

null

0/-0

NaN

" "

js에서 && 연산을 수행할 때 결과는 항상 true 또는 false가 아니라 현재 값입니다. 현재 값은 숫자 값, 문자열 등일 수 있습니다.

첫 번째 표현식이 true이면 두 번째 표현식의 값이 결과로 사용됩니다. 이 결과는 변환된 값이 아니라 그 자체입니다.

첫 번째 표현식이 false인 경우 첫 번째 표현식의 값이 결과로 사용됩니다. 이 결과는 변환된 값이 아니라 그 자체입니다.

  user = 6  both =   math = 0 console.log( user && both);     console.log( both && user);     console.log( both && math);     console.log( math && both);

세 번째 이해 수준: 단락 연산, 연산 프로세스, 먼저 왼쪽 피연산자의 값을 계산합니다. 계산 결과가 거짓 값이면 전체 표현식의 결과는 거짓 값이 됩니다. , 왼쪽 피연산자의 값은 동시에 오른쪽 연산을 중지합니다. 숫자 평가. 왼쪽 피연산자의 결과가 true인 경우 전체 결과는 오른쪽 피연산자의 값에 따라 달라집니다.

단락 연산에 대한 참고 사항:

&& 및 || 연산 중에 첫 번째 표현식의 값이 이미 전체 연산의 결과를 결정할 수 있으면 두 번째 표현식은 실행되지 않습니다.

&& 연산의 경우 첫 번째 수식의 값이 false인 경우 전체 연산 결과가 거짓이라고 판단하여 첫 번째 수식은 실행되지 않으므로 y--는 실행되지 않고 y의 값은 여전히 ​​3

  x =   y = 3 console.log(x && y--);     console.log(y);

입니다. ||

첫 번째 표현식의 값이 true인 경우 결과는 변환 후가 아니라 첫 번째 표현식 자체의 값입니다.

첫 번째 표현식의 값이 false인 경우 결과는 변환 후가 아니라 두 번째 표현식 자체의 값입니다.

1 var user = true;2 var both = 10;3 4 console.log(user || ++both);  //true5 console.log(both);   //10

&&는 ||와 정확히 동일한 원리를 갖고 있지만 연산 규칙이 다릅니다.

rreee

위 내용은 js의 && 및 || 예제에 대한 심층적인 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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