美文网首页
获取对象的内部属性 [[Class]] 的值,比typeof更细

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

作者: praycis | 来源:发表于2018-03-20 10:38 被阅读0次
    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操作符。

    相关文章

      网友评论

          本文标题:获取对象的内部属性 [[Class]] 的值,比typeof更细

          本文链接:https://www.haomeiwen.com/subject/xjyvqftx.html