2011-12-07 2 views
3

가능한 중복 :Javascript의 OR 연산자 (|)는 parseInt와 동일합니까?

console.log(12.22|0) // output --->12 

소수점 가고 않습니다
Using bitwise OR 0 to floor a number

은 비트 OR 두 식에, 예를 수행? 그것으로 parseInt 함수와 동일합니다

parseInt(12.22) // output --->12 

는 어떻게 작동합니까?

+0

많은 감사합니다. 나는 –

+1

을 추측합니다. 비트 OR은 실수로 비트 OR 연산을 수행 할 수 없기 때문에 비트 OR 연산을 적용하기 전에 정수로 자동 변환되도록 배율 12.22를 발생시킵니다. 12.22 | 1 == 13. http://stackoverflow.com/questions/7487977/using-bitwise-or-0-to-floor-a-number의 dup로 닫도록 투표하십시오. – jfriend00

+0

질문을 어떻게 닫을 수 있습니까? 나는 신입이다. –

답변

2

parseInt은 "12px"와 같은 문자열을 구문 분석하는 경우에 유용합니다. 이것은 비트 단위 OR 어떤 의미하지 않는다 그러나

pasrseInt("12px"); // returns 12 

:이 : 예를 들어

"12px" | 0; // returns 0 

이 공연을 비트 단위 이상의 숫자로 Math.floor()을 적용하는 것과 같다 - 비트 연산은 자바 스크립트의 32 비트 정수에서 작동합니다.

+0

'Math.floor'를 적용하는 것과 같지만 같지 않습니다. 그것은 대체 할 수있는 함수가 아니기 때문에'Math.trunc'를 적용하는 것에 더 가깝습니다. 그것은 교체 할 수없는 연산자입니다. 그것은 여전히'Math.trunc'와 같지 않습니다. 왜냐하면'NaN | 0' 대'Math.trunc (NaN)' – gman

관련 문제