获取对象的内部属性 [[Class]] 的值,比typeof更细

2018-03-20  本文已影响0人  praycis
Object.prototype.toString返回一种标准格式字符串
Object.prototype.toString.call([])    // "[object Array]"
Object.prototype.toString.call({})    // "[object Object]"
Object.prototype.toString.call(2)    // "[object Number]"

//通过截取字符串,就能拿到 "[object type]"中的type
Object.prototype.toString.call([]).slice(8, -1)  //Array

为了检测一个对象的类型,强烈推荐使用 Object.prototype.toString方法; 因为这是唯一一个可依赖的方式。正如上面表格所示,typeof 的一些返回值在标准文档中并未定义, 因此不同的引擎实现可能不同。

除非为了检测一个变量是否已经定义,我们应尽量避免使用 typeof操作符。

上一篇 下一篇

猜你喜欢

热点阅读