大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
判断是否为数组的5种方法
var arr= [1,1,1,1]
var a = '2323'
var b = {
name:'xiao',age:12}
var n = 1
1 instanceof
1 instanceof运算符用于检验构造函数的prototype属性是否出现在对象的原型链中的任何位置,返回一个布尔值。
注意的是,prototype属性是可以修改的,所以并不是最初判断为true就一定永远为真。
console.log('方法1',arr instanceof Array); //如果是数组 打印结果为 true
2 constructor
实例的构造函数属性constructor指向构造函数,那么通过constructor属性也可以判断是否为一个数组。
这种判断也会存在多个全局环境的问题,导致的问题与instanceof相同。
console.log('方法2',arr.constructor === Array);//true
3 Array.isArray() 最推荐方法
同样能准确判断,但有个问题,Array.isArray() 是在ES5中提出,也就是说在ES5之前可能会存在不支持此方法的情况。
console.log('方法3',Array.isArray(arr)); //true
4 typeof
使用该方法 判断数组时 打印结果为object
console.log('方法4',typeof n); //number
console.log('方法4',typeof(b)) //object
5 Object.prototype.toSrtring.call()
当使用该方法判断其他数据类型时要注意一点是,IE8及IE8以下,undefined和null均为Object,IE9及IE9以上为[object Undefined]和[object Null]
console.log(Object.prototype.toString.call(arr).indexOf('Array') !== -1); //true
console.log(Object.prototype.toString.call(arr) === '[object Array]'); //true
总结
个人学习过程中的方法总结,欢迎大家留言或者私信给出建议,我会及时更正,谢谢大家。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/224128.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...