Why is typeof's result different than the evaluated result of the expression passed in?
If two Objects added together equal NaN (not a number), which is technically of type number , then why does getting the type of two Objects added together result in "string" ? I will express this via the REPL: > {} + {} > NaN ok. two objects added together creates NaN > typeof(NaN) > "number" ok. we know that NaN's type is "number" > typeof({} + {}) > "string" wait. shouldn't this have been "number" also? I'm aware that javascript has a less then desireable type system, but I'm confused as to what's happening here. Is the type being converted from number to string for some reason? Is number