JS基础丨04. 判断是否为数组

 01. 检测对象的方法 :


	01. typeof操作符 
		console.log(typeof []); // "object" 
	
	02. instance of操作符: // <在某些IE版本中不正确>
		console.log(arr instanceof Array); // true 
	
	03. 对象的constructor属性
		console.log(arr.constructor === Array); // true 

02. 检测数组类型方法:

01. Object.prototype.toString 
		Object.prototype.toString.call([]);// === '[object Array]'
	
	02. Array.isArray()		<保证其兼容性>
		Array.isArray(arr)
		
	03. instance of操作符: // <在某些IE版本中不正确>
		console.log(arr instanceof Array); // true 

03.方法对比:

03. 方法对比
	01. 判断其是否具有“数组性质”,如slice()方法。可自己给该变量定义slice方法,故有时会失效
	
	02:
		obj instanceof Array 在某些IE版本中不正确
	03:
		01、02皆有漏洞,在ECMA Script5中定义了新方法Array.isArray(), 保证其兼容性,
		最好的方法如下:
		toString.call(18);//”[object Number]”
		toString.call('');//”[object String]”
	
	    解析这种简单的数据类型直接通过typeof就可以直接判断
		toString.call: 常用于判断数组、正则这些复杂类型
		toString.call(/[0-9]{10}/) // '[object RegExp]'
	
	if( typeof Array.isArray === "undefined"){
		Array.isArray = function(arg){
			return Object.prototype.toString.call(arg)==="[object Array]"
		};
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值