There is no substantial difference in performance on mine (within 2%), although the OR was always a little bit faster.
Chrome 45 on Linux
It's odd that a bitwise operator should have the effect of truncating the float (since X|0 == X)? I'm guessing there's an implicit type conversion to int in the middle?
And every time a developer sees that, they're going to google "bar javascript" "single bar javascript" "bitwise or javascript" "bitwise or javascript effect" until they figure out WTF is going on.
This all to save a fraction of a microsecond on an operation that's called 60 times on the page.
That's just adding another conversion from undefined to Number to Int32 for the right operand. You could probably use false as well. Or the empty string.
https://jsperf.com/or-vs-floor/2