Array对象的判定
/*
关于JS对象类型的判断,最复杂的在于RegExp和Array了,判定RegExp的情形不较少,而Array就比较多了,下面就是判断Array的方法
*/ //方法一:利用instanceof来判断对象是不是Array的实例
function isArray(arr){
return arr instanceof Array;
} //方法二:利用constructor来判断
function isArray(arr)
{
return !!arr && arr.constructor==Array;
} //方法三:利用constructor和array的内置属性(实例方法)来判断一个对象是否是Array类型
function isArray(arr) {
return arr && typeof arr==="object" && 'splice' in arr && 'join' in arr;
} //方法四:通过sort方法的类型判断arr是不是Array对象的实例
function isArray(arr)
{
return typeof arr.sort==="function";
} //方法五:通过Array.prototype.toString.call()方法来判断对象
function isArray(o) {
try
{
Array.prototype.toString.call(o);
return true;
}
catch (e)
{}
return false;
} //方法六:通过typeof和数组的length属性来判断
function isArray(o) {
if(o && typeof o=="object" && typeof o.length=="number" && isFinite(o.length))
{
//通过length属性是否符合原生数组的length的特性来进行双重判定
var _originalLength=o.length;
o[o.length]="_test_";
var _newLength=o.length;
o.length=_originalLength;
return _newLength==o.length+1;
}
return false;
} //方法七:
function isArray(array) {
var result=false;
try
{
new array.constructor(Math.pow(2,32));
}
catch(e)
{
result=/Array/.test(e.message);
}
return result;
}
Array对象的判定的更多相关文章
- JavaScript Array对象
介绍Js的Array 数组对象. 目录 1. 介绍:介绍 Array 数组对象的说明.定义方式以及属性. 2. 实例方法:介绍 Array 对象的实例方法:concat.every.filter.fo ...
- JavaScript基础18——js的Array对象
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 原生JS:Array对象详解
Array对象 本文参考MDN做的详细整理,方便大家参考[MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/ ...
- JavaScript Array 对象
JavaScript Array 对象 Array 对象 Array 对象用于在变量中存储多个值: var cars = ["Saab", "Volvo", & ...
- JavaScript Array对象 知识点总结
1 isArray方法 该方法是Array对象的静态方法,用来判断一个值是否为数组,它可以弥补typeof运算符的不足. 用法是Array.isArray(array实例) 通用的判断对象数据类型的方 ...
- JavaScript Number 对象 Javascript Array对象 Location 对象方法 String对象方法
JavaScript Number 对象 Number 对象属性 属性 描述 constructor 返回对创建此对象的 Number 函数的引用. MAX_VALUE 可表示的最大的数. MIN_V ...
- javascript中的array对象属性及方法
Array 对象 Array 对象用于在单个的变量中存储多个值. 创建 Array 对象的语法: new Array(); new Array(size); new Array(element0, e ...
- JS中的函数,Array对象,for-in语句,with语句,自定义对象,Prototype
一)函数 A)JS中的函数的定义格式: function add(a,b) { var sum = a+b; document.write("两个数的和是:" + sum); // ...
- JavaScript基础精华03(String对象,Array对象,循环遍历数组,JS中的Dictionary,Array的简化声明)
String对象(*) length属性:获取字符串的字符个数.(无论中文字符还是英文字符都算1个字符.) charAt(index)方法:获取指定索引位置的字符.(索引从0开始) indexOf(‘ ...
随机推荐
- StarUML 5.0问题解决:Failed to open the model file. Invalid file format.
使用StarUML 5.0打开一个已有的文件时,如果遇到报"Failed to open the model file. Invalid file format."错误,则原因可能 ...
- PHP(六)PHP和HTML混合的一种形式
- Task的运行原理和工作窃取(work stealing)
在net4.0以前,当调用ThreadPool.QueueUserWorkItem方法往线程池中插入作业时,会把作业内容(其实就是一个委托)放到线程池中的一个全局队列中,然后线程池中的线程按照先进先出 ...
- BTrace追踪Hadoop部署
Hadoop集成BTrace 1.BTrace 1.1BTrace部署 1.下载BTrace工具包,官网地址:https://kenai.com/projects/btrace/downloads/d ...
- How do I determine if I'm being run under the debugger?
#include <assert.h>#include <stdbool.h>#include <sys/types.h>#include <unistd.h ...
- Cockroachdb 二、手动部署
二 集群手动部署 **需求** a 本地已安装CockroachDB b 可SSH访问每台机器,用于分发二进制文件和证书 c 端口 26257 用于集群内部通信及客户端访问连接HAProxy 8080 ...
- PHP爬虫(3)PHP DOM开源代码里的大坑和字符编码
一.开源代码的问题 在PHP爬虫(2)中介绍了开源工程Sunra.PhpSimple.HtmlDomParser.在实际工作中发现一个问题,例如http://www.163.com的网页数据怎么也抓取 ...
- Android Studio设置字体
一,点"Settings"按钮,调出配置界面: 然后如图找到 Editor-colors&font-font ,默认的不让修改 所以先点击save as 随便起个名字 , ...
- 记一次优化ansible inventory的小例子
起因: 阿里云新扩容一批机器,要对上面的flume配置做修改 之前的inventory是这样子的 [user@vip10-ali-tj-console host_vars]$ sdiff vip10- ...
- java使用Redis6--sentinel单点故障主从自动切换
Redis SentinelSentinel(哨兵)是用于监控redis集群中Master状态的工具,其已经被集成在redis2.4+的版本中 一.Sentinel作用:1):Master状态检测 2 ...