이전 단어
논리 운영자는 피연산자에서 부울 작업을 수행하며 종종 관계형 운영자와 함께 사용됩니다. 논리 연산자는 여러 관계 표현을보다 복잡한 표현으로 결합합니다. 논리 연산자는 논리 비 '!', 논리 및 '&&', 논리적 또는 '||'의 세 가지 유형으로 나뉩니다. 이 기사는이 세 가지 논리 연산자를 소개합니다.
논리적이지 않은
논리적 비 수술자는 느낌표 (!)로 표시되며 ECMAScript의 모든 값에 적용될 수 있습니다. 이 값이 데이터 유형에 관계 없이이 연산자는 부울 값을 반환합니다. 논리적 비 운영기는 먼저 오페라를 부울 값으로 변환 한 다음 반전시킵니다.
논리적이지 않은 비 쌍 오페라의 부울 유형으로의 변환 유형은 결국 결과가 반전된다는 점을 제외하고 부울 () 변환 함수와 동일합니다. 두 논리적 비 운영기가 동시에 사용되는 경우 부울 () 변환 기능의 동작이 실제로 시뮬레이션됩니다.
console.log (!! undefined); // falseconsole.log (!! null); // falseconsole.log (!! 0); // falseconsole.log (!!-0); // falseconsole.log (!! nan); // falseconsole.log (!! '); // falseconsole.log (!!
console.log (!! {}); // trueconsole.log (!! []); // trueconsole.log (!! new boolean (false)); // trueconsole.log (!! false); // falseconsole.log (!! new boolean (null)); // trueconsole.log (!!논리적 비 운영자는 종종 루프를 제어하는 데 사용됩니다
// 부울 변수 (bfound)는 검색이 성공했는지 여부를 기록하는 데 사용됩니다. 질문의 데이터 항목이 발견되면 BFOUND가 True로 설정됩니다. BFOUND는 거짓과 동일합니다. 즉, 실행이 while 루프 var bfound = false; var i = 0; while (! bfound) {if (avalue [i] == vsearchvalues) {bfound = true; } else {i ++; }}논리와
논리와 연산자는 두 합계 (&&)로 표시됩니다. 두 개의 피연산자가 있습니다. 결과는 두 피연산자가 모두 참인 경우에만 TRUE가 반환됩니다. 그렇지 않으면 False가 반환됩니다.
// 로지스틱 및 (&&) 진실 테이블, 첫 번째 피연산자, 두 번째 피연산자 결과 진실 진정한 참된 거짓 거짓 거짓 거짓 거짓
논리와 운영은 부울뿐만 아니라 모든 유형의 피연산자에게 적용될 수 있습니다. 피연산자 중 하나가 부울이 아닌 경우 논리와 작업이 반드시 부울 가치를 반환 할 필요는 없습니다.
논리 및 작업은 단락 작업입니다. 첫 번째 피연산자가 결과를 결정할 수 있다면 두 번째 피연산자는 더 이상 평가되지 않습니다.
논리의 경우, 첫 번째 피연산자가 False 인 경우, 두 번째 피연산자의 가치에 관계없이 결과는 False이고 첫 번째 피연산자는 반환됩니다. 첫 번째 피연산자가 true 인 경우 결과의 True와 False는 두 번째 피연산자의 True 및 False와 동일하며 두 번째 피연산자가 반환됩니다.
// false, null, null, +0, -0, nan 및 ''의 7 가지 거짓 값을 제외하고 나머지는 모두 true 값 console.log ( 't'&& '')입니다. // 't'는 실제 값이기 때문에 ''console.log ( 't'&& 'f')를 반환합니다. // 't'는 진정한 값이기 때문에 'f'console.log ('t '&&' ')를 반환합니다. // 't'는 진정한 값이기 때문에``console.log ( ''&& '')를 반환합니다. // '' '가 잘못된 값이기 때문에``console.log (' '&&' ')를 반환합니다. // '' '가 잘못된 값이기 때문에``console.log (' '&&' ')를 반환합니다. //`` '가 잘못된 값이기 때문에``' ''를 반환합니다.var i = 1; var result = (true && i ++); console.log (result, i); // // true는 true 값이기 때문에 true, i ++, i is 2, result는 1var i = 1; var result = (false && i ++); console.log (ralse value, i is 1 is is is is is is is is is is is is is is is is is is is ice e); // console.log
논리와 연산자는 여러 가지 방법으로 사용될 수 있으며, 첫 번째 부울 표현의 값을 거짓으로 반환합니다.
console.log (true && 'foo'&& '&& 4 &&'foo '&& true); //' '
관계형 운영자의 우선 순위는 논리 및 (&&) 및 논리 또는 (||)보다 높으므로 괄호를 추가하지 않고도 비슷한 표현을 직접 작성할 수 있습니다.
if (a+1 == 2 && b+2 == 3) {// todo}If 구조 대신 논리 및 연산자를 사용할 수 있습니다.
if (a == b) {dosomething ();} //는 (a == b) && dosomething ();논리와 연산자는 종종 콜백 기능에 사용됩니다
// 값이 매개 변수 a로 전달되지 않으면 A는 기본값이 정의되지 않았으며 잘못된 값이므로 오류를 방지하기 위해 A ()가 실행되지 않습니다. 값이 매개 변수 a로 전달되는 경우, 함수 a () 함수 fn (a) {if (a) {a (); }} // 함수와 동등한 fn (a) {a && a ();}논리적 또는
논리 또는 연산자는 두 개의 수직선 (||)으로 표시됩니다. 두 개의 피연산자가 있습니다. 두 피연산자 모두 False 일 때에 만 결과는 False를 반환합니다. 그렇지 않으면 True가 반환됩니다.
// 로지스틱 또는 (||) 진실 테이블, 첫 번째 피연산자, 두 번째 피연산자 결과 진실 진정한 참된 거짓 진실한 거짓 거짓 거짓 거짓
마찬가지로, 논리 또는 작업은 부울뿐만 아니라 모든 유형의 피연산자에 적용될 수 있습니다. 피연산자 중 하나가 부울이 아닌 경우, 논리 또는 작전이 반드시 부울 가치를 반환 할 필요는 없습니다.
논리 또는 작동은 또한 단락 작업입니다. 첫 번째 피연산자가 결과를 결정할 수 있다면 두 번째 피연산자는 더 이상 평가되지 않습니다.
논리의 경우, 또는 첫 번째 피연산자가 참이면, 두 번째 피연산자의 값에 관계없이 결과는 사실이며 첫 번째 피연산자는 반환됩니다. 첫 번째 피연산자가 False 인 경우 결과의 참과 허위는 두 번째 피연산자의 True 및 False와 동일하며 두 번째 피연산자가 반환됩니다.
console.log ( 't'|| ''); // // 't'는 진정한 값이기 때문에 "t"console.log ( 't'|| 'f')를 반환합니다. 가치, 반환 ""
var i = 1; var result = (true || i ++); console.log (result, i); // // true, i ++가 실행되지 않기 때문에 i ++가 실행되지 않기 때문에, I ++는 실행되지 않으며, 결과는 true입니다. 1var i = 1; var result = (false | | i ++); console.log (거짓 값, i는 2, rengat is 1입니다.
마찬가지로, 논리 또는 연산자는 다중 연합에 사용하여 첫 번째 부울 표현식의 값을 반환 할 수 있습니다.
console.log (false || 0 || ''|| 4 || 'foo'|| true); // 4
논리 또는 연산자는 종종 변수의 기본값을 설정하는 데 사용됩니다.
// 객체가 매개 변수 P로 전달되지 않으면 기본적으로 객체가 빈 객체로 설정됩니다. fn (p) {p = p || {};}위는 편집자가 제공 한 JavaScript 연산자 - 논리 연산자의 전체 분석입니다. 모두가 wulin.com을 지원하기를 바랍니다