I have just come across a function in JavaScript which has return !1.
What does this actually mean? Why would you return !1 or return !0?
Here is the function that I came across:
function convertStringToBoolean(a) {
typeof a == "string" && (a = a.toLowerCase());
switch (a) {
case "1":
case "true":
case "yes":
case "y":
case 1:
case !0:
return !0;
default:
return !1
}
}
In immediate response to your question:
return !1is equivalent toreturn falsereturn !0is equivalent toreturn trueIn the specification – 11.4.9 Logical NOT Operator – it states that when you place an exclamation mark
!in front, the result is evaluated as Boolean and the opposite is returned.Example:
I mostly see this in a code passed through Google’s JS optimiser. I think it is mostly done to achieve shortness of the code.
It is often used when a strictly Boolean result is needed – you may see something like
!!(expression). Search in jQuery, for example.