I\'m under the impression that the Number type in Javascript stores any number, integer or float, according to the IEEE floating point standard. If so, then why does bitwise OR-
At language level there is only floats, and temporary integers for bitwise operators.
Per spec, a float is turned into a 32-bit integer by doing the abstract operation:
var n = (sign(number) * floor(abs(number))) % pow(2, 32);
if( n >= pow( 2, 31 ) ) {
return n - pow( 2, 32 );
}
else {
return n;
}
I must emphasize that this operation is abstract and certainly not done in the above fashion by any engine so don't draw any performance considerations from it. (This goes for any other spec operation too)