网站销售需要什么手续,如何用自己电脑做网站,最新传奇网页游戏排行榜,小米路由器 wordpress1. 不能用typeof #xff0c;因为typeof 只能判断基本类型#xff0c;不能判断引用类型 var ary [1,23,4];console.log(typeof ary); //输出结果是Object上面的办法并不能实时的检测出是否是数组#xff0c;只能判断其类型#xff0c;所以说typeof判断基本类型数据还是挺好…1. 不能用typeof 因为typeof 只能判断基本类型不能判断引用类型 var ary [1,23,4]; console.log(typeof ary); //输出结果是Object 上面的办法并不能实时的检测出是否是数组只能判断其类型所以说typeof判断基本类型数据还是挺好的但是不能准确测试出是否是数组2.instanceof 判断 var ary [1,23,4]; console.log(ary instanceof Array)//true; 能准确的检测出数据类型是否是数组但是有缺点。如下解释 3.原型链方法 var ary [1,23,4]; console.log(ary.__proto__.constructor Array);//true console.log(ary.constructor Array)//true 这两段代码是一样的 这个办法利用了原型链的方法但是这个是有兼容的哦在IE早期版本里面__proto__是没有定义的哦~而且这个仍然有局限性。 我们现在就来总结一下第2种方法和第3种方法局限性。 instanceof 和constructor 判断的变量必须在当前页面声明的比如一个页面父页面有一个框架框架中引用了一个页面子页面在子页面中声明了一个ary1并将其赋值给父页面的一个变量 ary2 这时判断该变量Array ary2.constructor;会返回false 原因 1、array属于引用型数据在传递过程中仅仅是引用地址的传递。 2、每个页面的Array原生对象所引用的地址是不一样的在子页面声明的array所对应的构造函数是子页面的Array对象父页面来进行判断使用的Array并不等于子页面的Array切记不然很难跟踪问题 4. 通用的方法 var ary [1,23,4]; function isArray(o){ return Object.prototype.toString.call(o) [object Array]; } console.log(isArray(ary)); 5 好用的判断类型的方式高阶函数的应用 function isType(type){ return function(o){ return Object.prototype.toString.call(o) [object type ]; }}var isArray isType(Array);var a [1,2,34];console.log(isArray(a)) 转载于:https://www.cnblogs.com/FineDay/articles/6688846.html