AFAIK, this is considered as a bad practice to use typeof to check the number, as NaN is also has type number (e.g. typeof NaN === "number"; // -> true). Moreover, typeof when used against number will return number, as a result, in lower case (i.e. not Number but number).
Interesting trick, but what if our value is 0 which can be a valid value to use? So our code:
won't copy anything.
So there is no point to use the trick in this way if 0 is a valid amount as well.
Remember that on the left you put the condition, so you may write like the following:
you could pass coins to a method that checks for false, null, and undefined only (or something along those lines)
Just make sure to internalize what JavaScript considers truthy and you won't think this is a "gotcha" anymore.
So in your specific case you'd probably want to do something like
AFAIK, this is considered as a bad practice to use
typeof
to check the number, asNaN
is also has typenumber
(e.g.typeof NaN === "number"; // -> true
). Moreover,typeof
when used against number will returnnumber
, as a result, in lower case (i.e. notNumber
butnumber
).Yeah the casing of
number
was just a typo. Adjusted it to check for NaN.