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日

相关文章

  • better sqlite3安装node gyp原生模块编译prebuild-install

    下面是关于”better-sqlite3安装node-gyp原生模块编译prebuild-install”的完整攻略。 1. 准备工作 在开始安装之前,你需要先安装以下软件和工具: Node.js (version 10或以上) node-gyp (用于编译原生模块的工具,在命令行中可以使用npm安装) Python (version 2.7或3.x) (用…

    node js 2023年6月8日
    00
  • Nodejs实现批量下载妹纸图

    下面是“Nodejs实现批量下载妹纸图”的完整攻略: 1. 准备工作 首先需要安装 Node.js 和 NPM(Node Package Manager),可以在官网下载安装程序。 然后在命令行窗口中使用以下命令安装必要的模块: npm install request cheerio mkdirp –save request:用于发送 HTTP/HTTPS…

    node js 2023年6月8日
    00
  • nodejs下打包模块archiver详解

    Node.js 下打包模块 archiver 详解 简介 archiver 是一个基于 Node.js 的打包压缩模块,可以用于创建 zip、tar 等格式的文件。它内部是使用 Node.js 的 stream 实现的,可以流式地处理大规模的文件。 安装 可以使用 npm 在项目中安装 archiver 模块: npm install archiver 使用…

    node js 2023年6月8日
    00
  • nodejs服务搭建教程 nodejs访问本地站点文件

    针对你的问题,我将会给出一份完整的nodejs服务搭建教程,包含如何通过nodejs访问本地站点文件的具体过程。下面请仔细阅读。 准备工作 在开始之前,需要确保你已经安装了nodejs。你可以通过命令行输入npm -v来检查nodejs是否已经安装,如果出现版本号,则代表nodejs已经成功安装。 搭建nodejs服务 创建项目目录 首先进入你的项目根目录,…

    node js 2023年6月8日
    00
  • JavaScript 运行机制详解再浅谈Event Loop

    JavaScript 运行机制详解再浅谈Event Loop 什么是JavaScript运行机制? 首先,我们需要了解JavaScript的运行机制。JavaScript在浏览器中是单线程运行的,也就意味着只有一个调用栈。JavaScript中的所有代码都是在主线程上运行的,当代码执行时,会在调用栈上创建一个执行环境,函数返回时,执行环境会被弹出调用栈。 什…

    node js 2023年6月8日
    00
  • nodejs之请求路由概述

    Node.js之请求路由概述 在Node.js中,请求路由是指根据URL及其他的请求信息来确定应该做些什么。在网站开发中,请求路由是非常重要的一环。本文将介绍Node.js中请求路由的概念以及如何实现请求路由。 请求路由的概念 请求路由的基本思路是将不同的URL映射到对应的处理程序中去。例如,我们可以将/start、/upload、/show等URL映射到相…

    node js 2023年6月8日
    00
  • javascript 框架小结 个人工作经验

    Javascript框架小结个人工作经验 介绍 Javascript框架是前端开发中非常重要的一项技术,几乎所有框架都致力于简化JS的开发流程。选择一个好的框架能够提高生产效率和开发体验,并且可以让代码更具有可维护性和可扩展性。 在本篇文章中,我们将梳理一些常用的JS框架,并分享我的个人工作经验。 常用框架 下面列出的框架是我们使用过的一些常见框架: Rea…

    node js 2023年6月8日
    00
  • node.js中Socket.IO的进阶使用技巧

    下面是“node.js中Socket.IO的进阶使用技巧”的完整攻略,包含两条示例说明。 Socket.IO概述 Socket.IO是一个实时应用程序框架,它使得在Web浏览器和服务器之间进行实时双向通信变得非常容易。它允许在混合Websockets、HTTP请求和轮询之间动态选择最佳的通信通道。在Node.js中,Socket.IO利用了底层的EventE…

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