goog.isNumber(foo) && !isNaN(foo) ?
That's what I'm currently doing...
Awful lot to write, especially when you're retrieving, from cookies (i.e. {string}), a bunch of stuff that you'd expect to be numbers.
E.g. google.maps.Map.setZoom(), for instance, can't handle strings such as '7'.
It feels to me like goog.isNumber() should behave as its semantics indicate and goog.isJsNumber or something else should be the exception.
But, given what has been said on this (behavior of typeof), goog.isValidNumber() would be enough...