[javascript] “|”는 무엇을 하는가 (단일 파이프) JavaScript로합니까?

console.log(0.5 | 0); // 0
console.log(-1 | 0);  // -1
console.log(1 | 0);   // 1

0.5 | 00을 반환하지만 어떤 정수 (음수 포함)가 입력 정수를 반환합니까? 단일 파이프 ( “|”)는 무엇을합니까?



답변

이것은 비트 단위 또는 입니다.
비트 단위 연산은 정수에만 의미 0.5가 있으므로 잘립니다.

0 | x이다 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 인 경우 a OR b는 1입니다.

JavaScript는 비트 단위 연산에서 정수가 아닌 숫자를 자르므로 0|00 으로 계산됩니다 .


답변

이 예제가 도움이 될 것입니다.


    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);


답변