링크를 클릭하면 [개체]가 새 창에 나타납니다. 이는 window.open() 메서드가 새로 열린 창에 대한 참조를 반환하기 때문입니다. 그러면 개체가 표시될 문자열로 변환됩니다. 이 결과를 방지하려면 void 연산자를 사용하여 window.open() 함수를 호출할 수 있습니다.
3. 사전 증가/사전 감소 연산자: C에서 빌린 두 개의 연산자. 예:
코드는 다음과 같습니다.
코드는 다음과 같습니다.
2. AND: by(&)는 숫자의 이진 형식을 직접 계산함을 나타냅니다. 규칙은 모두 1인 경우에만 1이고, 그렇지 않으면 0입니다. 예:
코드 복사
코드는 다음과 같습니다.
var iNum1=25; //25는 0000 0000 0000 0000 0000 0000 0001 1001
var iNum2=iNum1&3; // 3은 0000 0000 0000 0000 0000 0000 0000 0011
console.log(iNum2); // 그리고 0000 0000 0000 0000 0000 0000 0000 0001 출력 1
3. 비트 연산 OR: (|)로 표시, 숫자의 이진 형식을 직접 계산 . 규칙은 모두 0인 경우에만 0이고, 그렇지 않으면 1입니다. 예:
var iNum1=25; 25는 0000 0000 0000 0000 0000 0000 0001 1001
var iNum2=iNum1|3; // 3은 0000 0000 0000 0000 0000 0000 0000 0011
> 4. 비트 연산 XOR: by ( ^)는 숫자의 이진 형식이 직접 계산된다는 의미입니다. 규칙은 숫자가 1에 저장되어 있을 때만 1이고, 그렇지 않으면 0입니다. 예:
var iNum1=25; 25는 0000 0000 0000 0000 0000 0000 0001 1001
var iNum2=iNum1^3; // 3은 0000 0000 0000 0000 0000 0000 0000 0011
console.log(i Num2); // xor는 0000 0000 0000 0000 0000 0000 0001 1010 출력 26
5. 왼쪽 시프트 연산: (<<)로 표시, 숫자의 모든 숫자를 지정된 양만큼 왼쪽으로 이동, 유지 부호 비트, 왼쪽으로 이동 1비트는 2를 곱하는 것과 같습니다.
6. 부호 있는 오른쪽 시프트 연산: (>>)로 표시되며 숫자의 모든 자릿수를 지정된 양만큼 오른쪽으로 이동하고 부호 비트를 유지하며 오른쪽으로 한 자리 이동하는 것은 나누기와 같습니다. 2까지.
7. 부호 없는 오른쪽 이동 연산: (>>>)로 표시되며 숫자의 모든 자릿수를 지정된 양만큼 오른쪽으로 이동합니다. 양수는 부호 있는 오른쪽 시프트로 정확하게 처리되고, 음수는 양수로 처리됩니다.
예:
var iOld=2 ;
var iOld1=64;
var iOld3=-2;
var iNew=iOld<<5;
var iNew2=iOld2>>>5;
var iNew3=iOld3>>1;
console.log(iNew) //outpus 64
console.log(iNew1 ); / /outpus 2
console.log(iNew2); //outpus 2
console.log(iNew3); //outpus 2147483647
부호 없는 오른쪽 이동 계산 방법 음의 iOld3은 다음과 같습니다.
먼저 -2를 부호 없는 등가 형식, 즉 -2의 2의 보수로 변환합니다.
-2 이진 표현의 음수가 아닌 버전: 0000 0000 0000 0000 0000 0000 0000 0010
이진 보수 코드: 1111 1111 1111 1111 1111 1111 1111 1101
이진 보수 코드에 1 추가: 1111 1111 1111 1111 1111 1111 1111 1110
마지막으로 오른쪽으로 한 비트 이동: 0111 111 1 1111 1111 1111 1111 1111 1111 즉: 2147483647
2.9.3 부울 연산자
1. 논리적 NOT: (!)로 표시되며 반환 값은 부울 값이어야 하며 동작은 다음과 같습니다.
피연산자가 객체이면 false를 반환
피연산자가 숫자 0이면 true를 반환
피연산자가 0이 아닌 숫자이면 false를 반환
피연산자가 null이면 true를 반환
피연산자가 NaN이면 true를 반환
피연산자가 정의되지 않은 경우 오류 발생
2. 논리 AND: (&&)로 표현되는 피연산자가 모두 Boolean 형식이면 true를 반환합니다. 피연산자가 모두 true인 경우에만 그렇지 않으면 false가 반환됩니다. AND 연산의 피연산자는 모든 유형이 될 수 있으며 반환 값은 반드시 부울 값일 필요는 없습니다.
피연산자 중 하나가 객체이고 다른 피연산자는 부울 값인 경우 객체를 반환합니다.
두 피연산자가 모두 다음인 경우 두 번째 객체를 반환
피연산자가 null이면 null을 반환
피연산자가 NaN이면 NaN을 반환
피연산자가 정의되지 않으면 오류 발생
ECMAScript의 논리 AND도 단순 연산, 즉 첫 번째 피연산자가 결과를 결정하면 두 번째 피연산자는 계산되지 않습니다. 예:
var bResult=bFalse&&bUnknow; //outpus false
var bTrue=true;
var bResult=bTrue&&bUnknow;
console.log(bResult); //outpus ReferenceError: bUnknow가 정의되지 않았습니다.
3. 논리 OR 연산자: (||)로 표현되며, 피연산자가 모두 Boolean이면 피연산자가 false인 경우에만 false를 반환하고, 그렇지 않으면 true를 반환합니다. OR 연산의 피연산자는 모든 유형이 될 수 있으며 반환 값은 부울 값일 필요는 없습니다.
피연산자 중 하나가 객체이고 다른 피연산자는 부울 값인 경우 객체를 반환합니다.
두 피연산자가 모두 다음인 경우 객체, 첫 번째 객체를 반환
피연산자가 null이면 null을 반환
피연산자가 NaN이면 NaN을 반환
피연산자가 정의되지 않으면 오류 발생
ECMAScript의 논리 OR도 단순 연산, 즉 첫 번째 피연산자가 결과를 결정하면 두 번째 피연산자는 계산되지 않습니다. 예:
var bTrue=true;
var bResult=bTrue||bUnknow;
console.log(bResult); //outpus true
var bFalse =false;
var bResult=bFalse||bUnknow;
console.log(bResult); //outpus ReferenceError: bUnknow가 정의되지 않았습니다.
2.9.4 곱셈 연산자
1. 곱셈 연산자: (*)로 표시됩니다. 일반적인 상황에서는 수학의 곱셈과 동일합니다. 특별한 경우에는 다음과 같은 특별한 값이 있습니다.
연산 결과가 너무 크거나 너무 작은 경우 생성된 결과는 Infinity 또는 -Infinity입니다.
피연산자가 NaN이면 결과는 NaN입니다.
Infinity에 0을 곱하면 결과는 NaN입니다.
Infinity에 0 이외의 숫자를 곱하면 결과는 Infinity 또는 -무한대, 두 번째로 결정 피연산자의 부호가 결정
무한대에 무한대를 곱하면 결과가 무한대
2. 나눗셈 연산자 : (/)로 표시되며 일반적인 상황에서는 수학의 곱셈과 동일 . 특별한 경우에는 몇 가지 특별한 값이 있습니다.
연산 결과가 너무 크거나 너무 작으면 결과는 Infinity 또는 -Infinity입니다.
피연산자가 NaN이면 결과는 NaN입니다.
무한대를 무한대로 나누면 결과는 NaN
무한대는 임의의 숫자로 나누면 결과는 무한대
0을 무한대가 아닌 숫자로 나누면 결과는 NaN
무한대는 임의의 숫자로 나눕니다. 0 이외의 경우 결과는 두 번째 피연산자의 부호에 따라 결정되는 무한대 또는 -무한대입니다.
3. 모듈로 연산자: 일반적인 상황에서는 수학의 곱셈과 동일합니다. , 몇 가지 특별한 값이 있습니다:
피제수가 무한대이거나 제수가 0인 경우 결과는 NaN입니다.
무한대가 무한대로 나누어지면 결과는 NaN입니다.
제수가 무한한 경우, 결과는 배당이다
배당이 0이면 결과는 0