I was perusing the underscore.js library and I found something I haven't come across before:
if (obj.length === +obj.length) { ... }
What is that +
operator doing there? For context, here is a direct link to that part of the file.
The unary +
operator can be used to convert a value to a number in JavaScript. Underscore appears to be testing that the .length
property is a number, otherwise it won't be equal to itself-converted-to-a-number.