1. 논리부정 논리부정은 사용하지 않습니다! ECMAScript의 모든 유형의 값에 적용될 수 있음을 나타냅니다. 논리적 NOT 연산은 부울 값(true/false)을 반환합니다. 이 연산자는 먼저 피연산자를 부울 값으로 변환한 다음 이를 부정합니다.
다음은 Boolean() 변환 함수에 대한 일련의 규칙을 설명합니다.
数据类型 |
转换为true的值 |
转换为false的值 |
Boolean |
true |
false |
String |
任何非空字符串 |
""(空字符串) |
Number |
任何非零数字值(包括无穷大) |
0和NaN |
Object |
任何对象 |
null |
Undefined |
无 |
undefined |
데이터 유형
|
true로 변환된 값
|
false로 변환된 값 |
부울 |
참 |
거짓
|
문자열 |
비어 있지 않은 문자열 |
""(빈 문자열)
|
숫자 |
0이 아닌 모든 숫자 값(무한대 포함) |
0 및 NaN
|
객체 |
모든 개체 |
null
|
정의되지 않음 |
없음 |
정의되지 않음
|
Boolean() 변환 함수의 간단한 표현입니다. ----------! !
2. 논리 AND
4. 하나의 연산이 null이면 null을 반환합니다.
5. 하나의 연산자가 NaN이면
6을 반환합니다.
논리 AND 연산은 단락 연산입니다. 즉, 첫 번째 피연산자가 결과를 결정할 수 있으면 두 번째 피연산자는 평가되지 않습니다. (두 개의 내부 반환 작업으로 이해될 수 있습니다.) 따라서 규칙 4, 5, 6이 충돌하는 경우 단락 작동 원리를 따라야 합니다.
코드 복사
var test
test = na&&nul;
document.write(test) //NaN
코드 복사
코드는 다음과 같습니다.
var nul = null;
var na = NaN; test;
test = nul&&na;
코드 복사
코드는 다음과 같습니다.
// 유사 코드
function &&(param1,param2){
bparam1 = Boolean(param1);
if (!bparam1) return param1;
Boolean(param2) return param2;
// 매개변수가 객체인 경우 반환 참조된 포인터 값, 함수는
과 동일합니다. 3. 논리 OR 논리적 OR 기호는 두 개의 수직 막대 기호(||)로 표시됩니다. 논리 OR 기호도 단락 연산자입니다. 구현 과정은 논리 AND의 의사 코드라고 할 수 있습니다. 일부 규칙은 여기에 나열되지 않습니다. 논리적 OR은 evt = evt window.event와 같은 매개변수의 기본 처리에 자주 사용됩니다.