두 가지 질문으로 시작해 보겠습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!