首页 > 其他分享 >下面哪些方式在同一个窗口下能够检测一个js对象是数组类型?

下面哪些方式在同一个窗口下能够检测一个js对象是数组类型?

时间:2023-11-11 12:00:12浏览次数:41  
标签:instanceof Object 同一个 对象 object js 数组

下面哪些方式在同一个窗口下能够检测一个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

相关文章

  • Java检查值是否存在于数组中的3种方法
    在Java中,有许多方法可以检查此数组中是否存在特定元素。1)使用线性搜索方法时间复杂度:O(N)辅助空间:O(1)for(intelement:arr){  if(element==toCheckValue){    returntrue;  }}示例代码:importjava.util.Arrays; publicclassDemo{  p......
  • Lodash-前端 js工具库
    官网:Lodash简介|Lodash中文文档|Lodash中文网(lodashjs.com) import_from'lodash'constdialogHandler=(val)=>{if(val){listCompanyByCurrentUserIdFn()if(!_.isEmpty(props.dialogData.id)){baseDialog.value.setProps({......
  • js实现深拷贝
    functiondeepClone(obj,hash=newWeakMap()){if(obj===null)returnobj//如果是null或者undefined我就不进行拷贝操作if(objinstanceofDate)returnnewDate(obj)if(objinstanceofRegExp)returnnewRegExp(obj)//可能是对象或者普通的值如果是......
  • Js选择器总结
    Js选择器总结 一、原生JS选择器#JS选择器常用的有getElementById()、getElementsByName()、getElementsByTagName()、getElementsByClassName()、querySelector()、querySelectorAll()A:getElementById(ID):返回对指定ID的第一个对象的引用,如果在文档中查找一个特定的元......
  • concat方法: 用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数
    下列哪个方法不能改变自身数组?AspliceBconcatCsortDpoppop方法:用于删除并返回数组的最后一个元素,把数组长度减1,并且返回它删除的元素的值。如果数组已经为空,则pop()不改变数组,并返回undefined值。splice方法:向/从数组中添加/删除项目,然后返回被删除的项目,该方法会改变原......
  • java-数组
    第六章数组数组的引入【1】习题引入:1importjava.util.Scanner;2publicclassTestArray01{3publicstaticvoidmain(String[]args){4//功能:键盘录入十个学生的成绩,求和,求平均数:5//定义一个求和的变量:6......
  • 树状数组(2)-- 逆序对计算
    题干引入洛谷P1908LeedCodeLCR170逆序数(和线代中定义一致)在一个数字序列中,后面比前面小的数字个数之和如84591233的逆序数为:6+4+4+4+0+0+0+0=18使用一种办法求出逆序数树状数组解法根据上面序列中的数组出现次数,可以构建如下桶:ID1234567......
  • slice不改变原数组,返回截取的数组,slice(start,end), splice改变原数组splice(start,h
    执行以下程序,输出结果为()vara=[1,2,3];varb=a.slice();b.push(4);console.log(a)[1,2,3]array.slice(begin,end)将返回一个由begin和end决定的原数组的浅拷贝,其中,begin和end参数均是可选参数,如果省略begin,则默认从索引值为0开始提取,如果省略end,则默认提取到数组最后一......
  • VS Code搭建Node.js环境
    VSCode搭建Node.js环境VSCode集成了方便的Node.js插件,使您可以轻松安装和配置Node.js环境。您可以采用以下步骤来搭建Node.js环境。1.安装VSCode在VSCode官网上下载并安装VSCode2.安装Node.js插件在VSCode插件市场中搜索并安装“Node.js”扩展3.配置Node.js路径单......
  • call与apply的第一个参数都为this的指向,call后面的参数为传入的参数列表,apply为参数
    【摘自JavaScript高级程序设计】函数还有两个方法:apply()和call()。这两个方法都会以指定的this值来调用函数,即会设置调用函数时函数体内this对象的值。apply()方法接收两个参数:函数内this的值和一个参数数组。第二个参数可以是Array的实例,但也可以是arguments对象。来看下面的例......