I\'m refactoring a large javascript document that I picked up from an open source project. A number of functions use inconsistent return statements. Here\'s a simple examp
Using return
without a value will return the value undefined
.
If the value is evaluated as a boolean, undefined
will work as false
, but if the value for example is compared to false
, you will get a different behaviour:
var x; // x is undefined
alert(x); // shows "undefined"
alert(!x); // shows "true"
alert(x==false); // shows "false"
So, while the code should logically return true
or false
, not true
or undefined
, you can't just change return;
to return false;
without checking how the return value is used.