var a = "abc"*"def";
console.log(typeof a);//numbe
为什么会输出number而不是NaN?
typeof是最好的用来查看某个原始值的类型的方式.
> typeof "abc" 'string' > typeof undefined 'undefined'
问题: 你必须知道typeof null的怪异表现.
> typeof null
解决办法: 下面的函数可以修复这个问题(只针对这个用例).
function getPrimitiveTypeName(x) { var typeName = typeof x; switch(typeName) { case "undefined": case "boolean": case "number": case "string": return typeName; case "object": if (x === null) { return "null"; } default:
更好的解决办法: 实现一个函数getTypeName(),除了可以返回原始值的的类型,还可以返回对象值的内部[[Class]]属性.这里讲了如何实现这个函数(译者注:jQuery中的$.type就是这样的实现)