Converting floating number into integer We can use ( number | 0 ) statement instead of parseInt(number) in Javascript. for example : ( 3.343 | 0) gives an integer value 3.
 Please Explain  what is the logic behind ( number | 0 ) statement. 
            Asked
            
        
        
            Active
            
        
            Viewed 243 times
        
    2
            
            
         
    
    
        Mosè Raguzzini
        
- 15,399
- 1
- 31
- 43
 
    
    
        foysal sheykh
        
- 49
- 3
- 
                    I'ts a way in javascript of making a number into a integer. The Javascript Engine can then do certain optmizations,.. eg. Integer muliply / add etc, instead of double. – Keith Aug 31 '17 at 22:33
- 
                    Are you asking how `number | 0` works or why `number | 0` is used rather than `parseInt`? – Sebastian Simon Aug 31 '17 at 22:38
- 
                    1No, you should not use this instead of a proper `parseInt`. – Bergi Sep 01 '17 at 00:34
2 Answers
1
            
            
        The | operator performs bitwise logical OR. It requires its parameters to be integers, so it will convert a string to an integer. So 
( number | 0 )
is equivalent to:
( parseInt(number, 10) | 0 )
Any number or'ed with 0 will return that same number, so that makes it equivalen to:
parseInt(number, 10)
 
    
    
        Barmar
        
- 741,623
- 53
- 500
- 612
- 
                    I think there might be some confusion from the OP about type coercion here too. In the case described above, the confusion is how `"123" | 0 = 123`. – AJ X. Aug 31 '17 at 22:41
- 
                    No, those are not equivalent. Try with the input `number = "0xFF"`. Or `1e11`. Or `0b11`. Or `Infinity`. – Bergi Sep 01 '17 at 00:35
0
            
            
        Well, the single pipe between the number and 0 is bitwise operator that treat their operands as a sequence of 32 bits (zeroes and ones). https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#.7c_%28Bitwise_OR%29
 
    
    
        Mobi
        
- 46
- 4