반응형
자바스크립트에서 "|"(단일 파이프)는 무엇을 합니까?
console.log(0.5 | 0); // 0
console.log(-1 | 0); // -1
console.log(1 | 0); // 1
왜 그럴까요?0.5 | 0
0을 반환합니다. 그러나 모든 정수(음의 정수 포함)가 입력 정수를 반환합니까?단일 파이프("|")는 무엇을 합니까?
이건 약간 현명하거나.
비트 연산은 정수에서만 의미가 있으므로,0.5
잘렸습니다.
x | 0
이라x
,한다면x
는 정수입니다.
비트 비교는 너무 간단해서 거의 이해할 수 없습니다;) 이 "니블"을 확인하십시오.
8 4 2 1
-------
0 1 1 0 = 6 (4 + 2)
1 0 1 0 = 10 (8 + 2)
=======
1 1 1 0 = 14 (8 + 4 + 2)
비트와이즈 OR 6과 10은 14를 제공합니다.
alert(6 | 10); // should show 14
정말 혼란스럽군요!
단일 파이프는 비트 단위의 OR입니다.
각 비트 쌍에 대해 OR 연산을 수행합니다. a 또는 b가 1이면 OR b가 1을 산출합니다.
자바스크립트는 비트 단위 연산에서 정수가 아닌 모든 숫자를 잘라내기 때문에 다음과 같이 계산됩니다.0|0
0입니다.
이 예는 당신에게 도움이 될 것입니다.
var testPipe = function(input) {
console.log('input => ' + input);
console.log('single pipe | => ' + (input | 'fallback'));
console.log('double pipe || => ' + (input || 'fallback'));
console.log('-------------------------');
};
testPipe();
testPipe('something');
testPipe(50);
testPipe(0);
testPipe(-1);
testPipe(true);
testPipe(false);
피연산자는 32비트 정수로 변환되고 일련의 비트(0 및 1)로 표현됩니다.32비트를 초과하는 숫자는 가장 중요한 비트를 삭제합니다.
그래서 우리의 경우에는 십진수가 정수 0.5에서 0으로 변환됩니다.
= 0.5 | 0
= 0 | 0
= 0
언급URL : https://stackoverflow.com/questions/6194950/what-does-the-single-pipe-do-in-javascript
반응형
'programing' 카테고리의 다른 글
모바일 장치에서 전화 번호로 하이퍼링크를 만드는 방법은 무엇입니까? (0) | 2023.08.30 |
---|---|
클라이언트 측에서 JWT 인코딩 토큰 페이로드를 각도 있게 디코딩하는 방법은 무엇입니까? (0) | 2023.08.30 |
웹 페이지를 인쇄할 때 요소를 숨기려면 어떻게 해야 합니까? (0) | 2023.08.30 |
작성 및 편집에 동일한 양식을 사용하는 레이블 (0) | 2023.08.30 |
CORS + Cordova : 다음 문제: 액세스-제어-원산지 허용 (0) | 2023.08.25 |