用途
typeof:
> typeof "foo""string"> typeof true"boolean"> typeof 42"number"
因此,您可以执行以下 *** 作:
if(typeof bar === 'number') { //whatever}
但是,如果用它们的对象包装定义了这些原语,则要小心(永远不要这样做,请尽可能使用文字):
> typeof new Boolean(false)"object"> typeof new String("foo")"object"> typeof new Number(42)"object"
数组的类型为still
object。在这里,您确实需要
instanceof*** 作员。
更新:
另一种有趣的方式是检查以下内容的输出
Object.prototype.toString:
> Object.prototype.toString.call([1,2,3])"[object Array]"> Object.prototype.toString.call("foo bar")"[object String]"> Object.prototype.toString.call(45)"[object Number]"> Object.prototype.toString.call(false)"[object Boolean]"> Object.prototype.toString.call(new String("foo bar"))"[object String]"> Object.prototype.toString.call(null)"[object Null]"> Object.prototype.toString.call(/123/)"[object RegExp]"> Object.prototype.toString.call(undefined)"[object Undefined]"
这样,您就不必区分原始值和对象。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)