下面哪些方式在同一个窗口下能够检测一个js对象是数组类型?
A
Array.isArray()
B
instanceof
C
typeof
D
Object.prototype.toString.call()
正确答案:ABD
A:Array 为 js 的原生对象,它有一个静态方法:Array.isArray(),能判断参数是否为数组
B:instanceof 运算符返回一个布尔值,表示对象是否为某个构造函数的实例(题目中 instance of , emem)
C: typeof 能判断类型有:number、string、boolean、symbol、undefined、function; object、array、null 的变量都返回 object
D:Object.prototype.toString() 为 Object 对象的实例方法,默认情况下(即不重写该方法),返回参数的类型字符串。
A选项没啥好说的,原生支持的方法
B选项 instanceof 运算符返回一个布尔值,表示对象是否为某个构造函数的实例,这时可能就有同学要提出疑问了:
我用这个方法,似乎无法分辨数组与对象的区别啊, arr instanceof Array/Object 似乎都会返回 true !这不是不严谨吗?
注意审题:检测一个JS对象是数组类型,既定的事实是我们当前是一个对象,然后要判断它是否为数组,不懂直接看图解
C选项 typeof 能判断类型有:number、string、boolean、symbol、undefined、function;
object、array、null的变量都返回 object,所以错
D选项直接上图
标签:instanceof,Object,同一个,对象,object,js,数组 From: https://www.cnblogs.com/longmo666/p/17825752.html