regardless of `typeof`s odd behavior null and undefined are still a type. Another argument on why they aren't constants, constants are all caps. eg: `Math.PI`

I think the criteria for a type is that it is a literal. See http://esprima.org/demo/parse.html