• 如何准确的判断一个数据的类型


    如何准确的判断一个数据的类型(使用Object.prototype.toString.call())

    1.typeof:只能判断基本数据类型,不能判断引用数据类型,判断出来的都是Object
    2.instanceof:只能进行类型的对比,不能进行类型的判断
    3.var arr = [];
    console.log(Object.prototype.toString.call(arr));//输出[object Array],是一个数组对象
    4.var arr = [];
    console.dir(arr);//输出Array(0)
    5.Object身上的toString方法与其他对象身上的toString方法不是一个方法,而是其他对象继承Object原型以后改写的toString方法:
    var arr = [];
    arr.toString()得到的是一个空字符串""
    然而Object.prototype.toString.call(arr)输出的是[object Array],说明他俩不是同一个方法
    6.在Array.prototype.slice.call(arguments).slice(1)中,arguments本身没有slice方法,所以需要借助call这个方法去借用slice方法。而call方法是用来改变this指向的,也就是说Array此时的指向arguments,所以arguments拥有了slice方法
    7.instanceof
    function Fn(){
        console.log(this instanceof Fn);
    }
    Fn();//结果为false(说明此时this不指向函数本身,即Fn。因为只是执行一个函数时,this指向window)
    如果是new Fn();,则结果为true(说明此时this指向函数本身,即Fn。因为当new一个函数时,this会指向实例化对象,也就是Fn)
  • 相关阅读:
    (一) kinect概述
    (五)摇杆/按钮/触摸板
    (四)Trigger
    (三)快速添加touch事件
    (二)简单触控
    Java程序设计当堂测试 9.20
    Java程序设计当堂测试感受
    暑假生活第八周总结
    暑假生活第七周总结
    暑假生活第六周总结
  • 原文地址:https://www.cnblogs.com/Leslie-Cheung1584304774/p/10544155.html
Copyright © 2020-2023  润新知