>웹 프론트엔드 >JS 튜토리얼 >세 가지 다른 수준의 연산자 &&_기본 지식

세 가지 다른 수준의 연산자 &&_기본 지식

WBOY
WBOY원래의
2016-05-16 17:38:211758검색

연산자는 세 가지 수준으로 이해될 수 있습니다.

1단계 이해

피연산자가 모두 부울 값인 경우 "&&"는 두 값에 대해 부울 AND 연산을 수행합니다.

코드 복사 코드는 다음과 같습니다.

x==0 && y==0 // x와 y가 모두 0인 경우에만 True만 반환됩니다.

관계 연산자는 "&&"보다 우선순위가 높습니다.

이해 2단계

"&&"는 true 및 false 값에 대해 부울 AND 연산을 수행할 수 있습니다. (거짓 값에는 false, null, undefine, 0, NaN 및 ""가 포함됩니다). JS에서 부울 값을 사용하려는 경우 표현식과 명령문은 이를 참 또는 거짓 값으로 처리하므로 실제로 "&&"가 항상 참과 거짓을 반환하지는 않습니다.

코드 복사 코드는 다음과 같습니다.

null && true // =>null : 왼쪽 연산 숫자가 false이고 이를 반환하면 전체 표현식이 false
true && (5 - 3) // =>2: 왼쪽 피연산자가 true이고 오른쪽 피연산자가 계산되어 결과가 반환됩니다.

3단계 이해

연산자가 참 값이나 거짓 값을 반환하려고 할 때 왼쪽 피연산자의 값에 따라 두 가지 연산 상황에 직면하게 됩니다. 즉, 계산 결과가 거짓이면 연산자는 먼저 왼쪽 피연산자의 값을 계산합니다. 값, 그러면 전체 표현식 수식의 결과도 거짓 값이어야 합니다. 이때 "&&"는 단순히 왼쪽 피연산자의 값만 반환하고 오른쪽 피연산자는 계산하지 않습니다. 왼쪽 피연산자가 true인 경우 "&&"는 오른쪽 피연산자의 값을 평가하여 전체 표현식의 결과로 반환합니다.

코드 복사 코드는 다음과 같습니다.

var o = {x:1};
var p = null;
o && o.x; // =>1 o는 참 값이고, o.x 값을 반환합니다.
p && p.y // =>null: p는 거짓입니다. 값을 반환합니다. p.y를 계산하는 대신

"&&"의 동작을 "단락"이라고도 하며, 많은 코드가 이 기능을 활용하여 조건부로 코드를 실행하는 것을 볼 수 있습니다. 예를 들어, 다음 두 코드 줄은 완전히 동일합니다.

코드 복사 코드는 다음과 같습니다.

if(a == b) stop( );
(a == b) && stop();// 위 문장과 동일

지식의 확장

"&&"와 마찬가지로 "||" 연산자에도 복잡한 동작이 있습니다.

은 대체 표현식 세트에서 첫 번째 진리값 표현식을 선택하는 데 사용됩니다.

코드 복사 코드는 다음과 같습니다.

// 먼저 a가 true인지 확인하세요. 값이 그렇다면 a를 반환하고, 그렇지 않으면 a와 동일한 방식으로 b를 처리합니다
// b가 참 값이면 b를 반환하고, 그렇지 않으면 5를 반환합니다.
var max = a || b || 🎜>
이 사용법은 함수에서 매개변수에 대한 기본값을 제공하는 데 사용될 수 있습니다.

코드 복사 코드는 다음과 같습니다.
function copy(o, p) {
p = p || {}; // 매개변수 p에 객체가 전달되지 않으면 새로 생성된 객체를 사용합니다.
// ...
}

연산자 우선순위

동일한 우선순위를 가진 연산자의 경우 조합 방향에 따라 연산 순서가 결정됩니다.

간단히 기억하면:! > 관계 연산자 > 할당 연산자

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