I have this code sample:
if (!params || params?.page == null) {
console.log('condition 1');
inputParam = 1;
} else if (parseInt(params.page) == NaN) {
console.log('condition 2');
inputParam = 1;
} else if (parseInt(params.page) < 0 || parseInt(params.page) > 42) {
console.log('condition 3');
inputParam = 1;
} else {
console.log('condition else');
inputParam = params.page;
}
console.log(params.page);
console.log(parseInt(params.page));
console.log(inputParam);
console.log(parseInt(params.page) === NaN);
const processedParam = parseInt(inputParam);
console.log(processedParam);
I've been running this in a node app that I have. I get this in my console.
condition else
oh
NaN
oh
false
NaN
Why is else if (parseInt(params.page) == NaN) {
not catching, and why is console.log(parseInt(params.page) === NaN);
reading false
when it's clearly supposed to be true
?