underscore package defines the
_ namespace on both the client
and the server.
Currently, underscore is included in all projects, as the Meteor core depends on it. _ is available in the global namespace on both the client and the server even if you do not include this package. However if you do use underscore in your application, you should still add the package as we will remove the default underscore in the future.
We have slightly modified the way Underscore differentiates between objects and arrays in collection functions. The original Underscore logic is to treat any object with a numeric
lengthproperty as an array (which helps it work properly on
NodeLists). In Meteor’s version of Underscore, objects with a numeric
lengthproperty are treated as objects if they have no prototype (specifically, if
x.constructor === Object.