JavaScript判断对象和数组的两种方法

当需要判断一个变量是对象还是数组时,JavaScript提供了两种方法:

1. 使用typeof运算符

使用typeof运算符,可以检测一个变量的数据类型,如果返回值是"object",就可以判断这个变量是对象或数组。

// 判断对象
let obj = {};
if (typeof obj === "object" && !Array.isArray(obj)) {
  console.log("变量是对象");
}

// 判断数组
let arr = [];
if (typeof arr === "object" && Array.isArray(arr)) {
  console.log("变量是数组");
}

需要注意的是,使用typeof运算符判断数组时,得到的返回值也是"object",所以需要加上Array.isArray()来判断是否为数组。

2. 使用instanceof运算符

使用instanceof运算符,可以确定一个变量是否为某个对象的实例,如果是数组的实例,就可以判断这个变量是数组。

// 判断对象
let obj = {};
if (obj instanceof Object && !(obj instanceof Array)) {
  console.log("变量是对象");
}

// 判断数组
let arr = [];
if (arr instanceof Array) {
  console.log("变量是数组");
}

需要注意的是,如果变量是通过构造函数创建的对象或数组,判断时需要使用构造函数名字来替代Object和Array。

function Person(name) {
  this.name = name;
}

let person = new Person("Jack");
if (person instanceof Person) {
  console.log("变量是Person的实例");
}

示例:

// 针对一个错误的判断
let arr = {};
if (typeof arr === "object" && Array.isArray(arr) === false) {
  console.log("变量是数组");
} else {
  console.log("变量不是数组");
}
// 输出结果:变量不是数组

// 针对一个正确的判断
let obj = { name: "Tom" };
if (typeof obj === "object" && Array.isArray(obj) === false) {
  console.log("变量是对象");
} else {
  console.log("变量不是对象");
}
// 输出结果:变量是对象

以上两种方法都可以用来判断变量的数据类型,但是在使用时需要注意各自的适用范围和注意点,以保证得到正确的结果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript判断对象和数组的两种方法 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JS module的导出和导入的实现代码

    一、JS Module导出代码实现攻略 JavaScript模块通过导出可以将模块中定义的变量、函数、类等内容暴露给外部调用。常见的JS模块导出方式包括:ES6模块、CommonJS模块和AMD模块等。以下是关于如何通过ES6模块进行导出的实现攻略: 使用export关键字将模块中定义的内容导出,导出内容可以是变量、函数、类等; 如果需要导出多个变量或函数,…

    JavaScript 2023年5月27日
    00
  • javascript中encodeURI和decodeURI方法使用介绍

    JavaScript 中 encodeURI 和 decodeURI 方法使用介绍 在 JavaScript 中,encodeURI 和 decodeURI 方法可以用于编码和解码 URI,以便在 URL 中传输特殊字符或非 ASCII 字符。本文将详细介绍这两种方法的使用。 encodeURI 方法 encodeURI 可以将 URL 中除了 字母、数字、…

    JavaScript 2023年5月19日
    00
  • JS面向对象编程基础篇(一) 对象和构造函数实例详解

    那么让我们来详细讲解一下“JS面向对象编程基础篇(一) 对象和构造函数实例详解”的完整攻略。 什么是对象和构造函数 对象是 JavaScript 中一种复合数据类型,由属性和方法组成,用于存储和操作数据。可以通过对象字面量或构造函数来创建。 构造函数是创建对象的一种特殊方式。它是一种函数,当用 new 关键字调用时,它将返回一个新的对象,并通过原型继承关联到…

    JavaScript 2023年6月10日
    00
  • 设置cookie指定时间失效(实例代码)

    设置 cookie 失效时间是保持 Web 应用程序状态的关键技术之一。下面是如何在 PHP 中设置指定时间失效的 cookie 的完整攻略: 步骤 1:创建 cookie 要在 PHP 中设置 cookie,可以使用 setcookie() 函数。该函数的语法如下: setcookie(name, value, expire, path, domain, …

    JavaScript 2023年6月11日
    00
  • 详解如何通过JavaScript实现函数重载

    实现函数重载是一种简化代码的方式,通过JavaScript中函数的参数数量、类型、顺序等不同来调用不同的函数。下面是如何通过JavaScript实现函数重载的攻略: 根据参数数量进行重载 根据参数数量进行重载是最简单的方式,通过判断参数的数量来实现不同的函数调用。下面是一个示例代码: function foo() { if (arguments.length…

    JavaScript 2023年5月27日
    00
  • JS中把字符转成ASCII值的函数示例代码

    下面就来详细讲解一下JS中把字符转成ASCII值的函数示例代码的完整攻略。 什么是ASCII码 在进行进一步说明之前,先给大家介绍一下ASCII码(American Standard Code for Information Interchange),也就是美国信息交换标准代码,它是一种基于拉丁字母的一套电脑编码系统,也是目前广泛使用的字符编码标准,它定义了…

    JavaScript 2023年5月28日
    00
  • 浅谈jquery拼接字符串效率比较高的方法

    下面就来详细讲解一下关于“浅谈jQuery拼接字符串效率比较高的方法”这个话题的攻略。 什么是jQuery字符串拼接 在前端开发中,我们常常需要对字符串进行拼接,例如将一些文字、HTML标签、变量值等内容拼接成一个完整的HTML元素或字符串。在jQuery中,我们可以使用一些方法来实现字符串拼接。 jQuery字符串拼接效率比较高的方法 1. 使用数组进行字…

    JavaScript 2023年5月28日
    00
  • javascript 函数限制调用代码

    当我们编写 JavaScript 代码时,为了代码安全和可维护性,限制函数外部对函数内部代码的访问是十分重要的。在以下代码片段中,函数内部的数据变量可以被外部直接访问和修改,这会导致安全漏洞和代码不易维护。 let data = { name: ‘John’, age: 35 } function fetchData() { return data; } c…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部