JS判断对象属性是否存在的五种方案分享

下面是"JS判断对象属性是否存在的五种方案分享"的攻略:

方案一:in操作符

使用in操作符判断对象是否存在某个属性。

语法:

属性名 in 对象

示例:

const student = {
  name: 'Tom',
  age: 20
}

console.log('name' in student) // true
console.log('gender' in student) // false

注意事项:

  • in操作符判断的是属性名,不是属性值;
  • 如果一个属性存在于对象中,无论它的值是什么,in操作符都会返回true;
  • 为了避免误判,最好使用对象的.hasOwnProperty()方法判断。

方案二:hasOwnProperty()方法

使用对象的hasOwnProperty()方法判断对象是否存在某个属性。

语法:

对象.hasOwnProperty(属性名)

示例:

const student = {
  name: 'Tom',
  age: 20
}

console.log(student.hasOwnProperty('name')) // true
console.log(student.hasOwnProperty('gender')) // false

注意事项:

  • hasOwnProperty()方法只判断对象自身是否拥有该属性,不会从原型链中查找;
  • 由于JavaScript中自带的对象都是Object的实例,所以如果属性名和Object的原型对象中的属性名相同,hasOwnProperty()方法会返回false,如toString()、valueOf()。

方案三:undefined判断

判断对象某个属性的值是否为undefined。

语法:

typeof 对象.属性名 === 'undefined'

示例:

const student = {
  name: 'Tom',
  age: 20
}

console.log(typeof student.gender === 'undefined') // true
console.log(typeof student.age === 'undefined') // false

注意事项:

  • 该方法只适用于判断属性是否为undefined,无法判断属性是否存在且不为undefined。

方案四:null判断

判断对象某个属性的值是否为null。

语法:

对象.属性名 === null

示例:

const student = {
  name: 'Tom',
  age: 20,
  gender: null
}

console.log(student.gender === null) // true
console.log(student.age === null) // false

注意事项:

  • 该方法只适用于判断属性是否为null,无法判断属性是否存在且不为null。

方案五:try-catch语句

使用try-catch语句判断对象是否存在某个属性。

语法:

try {
  对象.属性名
  // 如果以上语句执行失败,会跳到catch语句
} catch(e) {
  // 如果以上语句执行失败,会进入这个catch语句
}

示例:

const student = {
  name: 'Tom',
  age: 20
}

try {
  if (student.gender) {
    console.log(true)
  }
} catch(e) {
  console.log(false)
}

注意事项:

  • 使用try-catch语句的代价比其他方法要高,如果在一个循环中运行,会大量消耗CPU资源。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS判断对象属性是否存在的五种方案分享 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • 详解如何解决使用JSON.stringify时遇到的循环引用问题

    当使用 JSON.stringify() 方法时,如果对象包含循环引用,将会导致 JSON.stringify() 抛出异常并停止执行。为了解决这个问题,可以采用以下两种解决方案。 1. 自定义序列化函数 我们可以自定义对象的序列化函数,通过特定的逻辑过滤循环引用的情况,然后调用 JSON.stringify() 方法进行序列化。下面是一个示例代码: fun…

    node js 2023年6月8日
    00
  • window.location.reload 刷新使用分析(去对话框)

    当我们需要刷新网页时,可以使用 JavaScript 中的 window.location.reload() 方法。该方法会重新加载当前页面,从而达到刷新的效果。 使用该方法时,可以选择是否清除浏览器缓存的内容。如果不清除缓存,则页面仅会重新加载服务器上的内容,而不会重新获取所有文件;但如果选择清除缓存,则浏览器会重新获取所有文件,可以获取最新的内容。 下面…

    node js 2023年6月8日
    00
  • nodejs实现超简单生成二维码的方法

    下面是详细的“nodejs实现超简单生成二维码的方法”的攻略。 1. 安装依赖 首先,我们需要安装两个npm包:qrcode和fs。qrcode用于生成二维码,fs用于读写文件。 可以使用以下命令安装: npm install qrcode fs –save 2. 创建一个生成二维码的函数 我们可以创建一个函数 generateQRCode 来生成二维码。…

    node js 2023年6月8日
    00
  • nodejs进阶(6)—连接MySQL数据库示例

    Node.js 是一个非常流行的 JavaScript 运行时环境,可以用于开发服务器端应用程序。其中连接 MySQL 数据库是非常常见的需求,这里提供一个简单的示例来完成该操作。 步骤一:安装MySQL数据库 首先,需要在本地环境中安装 MySQL 数据库,以便连接和测试。MySQL 官方提供了可用于大多数操作系统的安装包和安装说明。一般来说,可以选择适合…

    node js 2023年6月8日
    00
  • Nodejs实现多人同时在线移动鼠标的小游戏分享

    下面我会详细讲解一下“Nodejs实现多人同时在线移动鼠标的小游戏分享”的完整攻略。 1. 思路 该小游戏的核心思想是使用 Node.js 作为服务器,通过 socket.io 实现多个用户的鼠标操作的实时同步。 主要步骤: 启动一个 Node.js 服务器,监听客户端的连接请求; 当客户端连接到服务器后,服务器会为每个客户端生成一个唯一的 session …

    node js 2023年6月8日
    00
  • Windows系统中安装nodejs图文教程

    Windows系统中安装Node.js图文教程 Node.js是一款采用V8引擎的JavaScript运行环境,广泛应用于服务器端开发、命令行工具等领域。本文为大家介绍在Windows系统中安装Node.js的实际步骤。 下载Node.js 首先,我们需要下载Node.js的安装包。可以在Node.js官网上找到针对不同操作系统的下载链接。本文以Window…

    node js 2023年6月8日
    00
  • Docker快速部署主流脚本语言JavaScript的全过程

    下面是详细讲解使用Docker快速部署JavaScript脚本语言的全过程: 1. 安装Docker 首先,我们需要在我们的机器上安装Docker。Docker的安装方式可以参考官方文档,这里提供一个简单的安装方法: 在Windows或MacOS上安装Docker Desktop。 在Linux上安装Docker Engine 2. 编写Dockerfile…

    node js 2023年6月9日
    00
  • 利用express启动一个server服务的方法

    启动一个server服务通常需要以下步骤: 使用npm安装express包 npm install express –save 编写一个js文件,使用require引入express const express = require(‘express’); const app = express(); 在app对象上配置路由 app.get(‘/’, (re…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部