为什么要用Object.prototype.toString而不是Function.prototype.toString或者其它?这是和他们的toString解释方式有关系的。下面是ECMA中对Object.prototype.toString的解释:
Object.prototype.toString( )
When the toString method is called, the following steps are taken:
1. Get the [[Class]] property of this object.
2. Compute a string value by concatenating the three strings “[object “, Result (1), and “]”.
3. Return Result (2)
其过程简单说来就是:1、获取对象的类名(对象类型)。2、然后将[object、获取的类名、]组合并返回。
ECMA中对Array有如下说明:
The [[Class]] property of the newly constructed object is set to “Array”.
因此我们用如下代码来检测数组:
function isArray(o) { return Object.prototype.toString.call(o) === '[object Array]'; }
这种方式既解决了instanceof存在的跨页面问题,也解决了属性检测方式所存在的问题,实在是一种妙招,一个很好的解决方案。
除此之外,这种解决办法也可以应用于判断Date,Function等类型的对象。
另外还有几个方法:
var arr = []; return arr instanceof Array;
如果有其他好的方法不妨贴出来。
分享到:
相关推荐
我们能够使用typeof判断变量的身份,判断字符串得到string,数字和NaN得到number,函数会得到function等,但是判断数组,对象和null时都会得到object,详细请看js数据类型,这就是typeof的局限性,并不能准确的判断...
主要介绍了JavaScript中判断变量是数组、函数或是对象类型的方法,需要的朋友可以参考下
今天意外地发现JavaScript是不能用==或===操作符直接比较两个数组是否相等的。 alert([]==[]); // false alert([]===[]); // false 以上两句代码都会弹出false。 因为JavaScript里面Array是对象,=...
主要介绍了js数组相减,结合简单示例形式分析了JavaScript删除a数组所有与b数组相同元素相关个遍历、判断、删除等相关操作技巧,需要的朋友可以参考下
主要介绍了JavaScript判断数组是否包含指定元素的方法,涉及javascript中contains方法的使用技巧,需要的朋友可以参考下
javascript如何判断数组内元素是否重复的方法集锦
主要介绍了javascript判断数组内是否重复的方法,涉及javascript针对数组的相关操作技巧,非常具有实用价值,需要的朋友可以参考下
主要介绍了JS判断两个数组或对象是否相同的方法,结合实例形式分析了javascript针对简单数组与对象进行判断的相关操作技巧,需要的朋友可以参考下
这份资源详细介绍了如何在JavaScript中判断数组是否包含某个值。文档中提供了多种实现方法,包括使用includes()函数、使用indexOf()函数、使用filter()函数等多种方式。每一种方法都有详细的代码示例和实现说明,让...
Javascript不能直接用==或者===来判断两个数组是否相等,无论是相等还是全等都不行,要判断JS中的两个数组是否相同,需要先将数组转换为字符串,再作比较。
JS中复合数组associative array和对象是等同的,判断一个key是否存在于数组中(或对象是否包含某个属性),不能使用ary[key] == undefined,因为可能存在ary = {key:undefined};...以上这篇JavaScript判断数组是
主要介绍了JavaScript获取两个数组交集的方法,涉及javascript针对数组的相关操作技巧,需要的朋友可以参考下
例1 代码如下:/* * * 判断在数组中是否含有给定的一个变量值 * 参数: * needle:需要查询的值 * haystack:被查询的数组 * 在haystack中查询needle是否存在,如果找到返回true,否则返回false。 * 此函数只能对字符...
直接上代码: JavaScript代码: var array=[{name:"张珊",sex:"男"}];...以上这篇JavaScript判断变量名是否存在数组中的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。
在JavaScript中所有数据类型严格意义上都是对象,但实际使用中我们还是有类型之分,如果要判断一个变量是数组还是对象使用typeof搞不定,因为它全都返回object 代码如下: var o = { ‘name’:’lee’ }; var a = ...
本文给大家介绍两种JavaScript判断数组重复内容的方法(推荐)非常不错具有参考借鉴价值,感兴趣的朋友一起看看吧
javascript判断数组是否已包含了某个元素的js函数,方便数组的判断。
主要介绍了JS判断数组里是否有重复元素的方法,结合实例形式分析了javascript针对数组重复元素判断相关的遍历、排序、递归等相关操作技巧,需要的朋友可以参考下