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日

相关文章

  • npm配置国内镜像资源+淘宝镜像的方法

    在中国大陆地区使用npm下载和安装包时,由于网络环境的问题,访问npm官方镜像源会非常缓慢或者根本连不上,这时我们就需要使用国内的镜像资源,其中使用淘宝镜像是比较常见的方法之一。下面是npm配置国内镜像资源+淘宝镜像的方法: 1. 使用npm命令行设置镜像源 首先,我们可以直接在npm命令行中设置镜像源: 1.1 将npm镜像源切换到淘宝镜像 npm con…

    node js 2023年6月8日
    00
  • JavaScript实现动态添加Form表单元素的方法示例

    下面是JavaScript实现动态添加Form表单元素的方法示例: 1. 添加input元素示例 在HTML中先定义一个form表单,并在其中定义一个按钮,点击按钮时触发JavaScript代码动态添加input元素: <!DOCTYPE html> <html> <head> <title>动态添加表单元素&…

    node js 2023年6月8日
    00
  • Node.js+express+socket实现在线实时多人聊天室

    Node.js是基于Chrome V8引擎的JavaScript运行环境,可以使得开发者在服务器端使用JavaScript语言。express是一种基于Node.js开发的Web应用框架,提供了一些常用的Web应用开发功能,并且易于扩展。socket是一种实现实时通讯的技术,能够使得客户端和服务器之间实现双向即时消息传输。 下面简单介绍如何通过Node.js…

    node js 2023年6月8日
    00
  • 详解两个Node.js进程是如何通信

    让我们来详细讲解“详解两个Node.js进程是如何通信”。 为了实现进程间通信,我们需要使用Node.js的内置模块child_process。child_process提供了一些方法用于创建和控制子进程,这些方法都是异步的。我们可以使用child_process中的方法来生成一个子进程,然后通过IPC通道与子进程进行通信。 在这里我们将使用两个Node.j…

    node js 2023年6月8日
    00
  • Node.js连接mongo数据库上传文件的方法步骤

    下面是“Node.js连接mongo数据库上传文件的方法步骤”的完整攻略: 1. 安装依赖 在Node.js中连接mongo数据库,需要使用到mongoose,参考以下命令进行安装: npm install mongoose 同时,也需要使用到multer,参考以下命令进行安装: npm install multer 2. 连接MongoDB数据库 使用mo…

    node js 2023年6月8日
    00
  • nodejs文件夹深层复制功能

    以下是“nodejs文件夹深层复制功能”的完整攻略: Node.js文件夹深层复制功能 在Node.js中,我们可以使用fs模块来进行文件和文件夹操作。在复制文件夹时,我们需要使用到fs-extra模块。fs-extra模块继承了fs模块的所有功能,并添加了一些更方便的方法,其中包括深层复制功能。 安装fs-extra模块 在使用fs-extra模块之前,需…

    node js 2023年6月8日
    00
  • nodejs个人博客开发第二步 入口文件

    下面详细讲解“nodejs个人博客开发第二步 入口文件”的完整攻略。 在Node.js中,每个应用都需要有一个入口文件,也就是应用程序的主模块。入口文件负责启动应用程序,并引入其他模块和逻辑代码。下面的攻略将教你如何创建一个入口文件并完成应用程序的启动。 创建入口文件 首先,我们需要在项目根目录下创建一个名为“app.js”的文件,这个文件即将成为我们的入口…

    node js 2023年6月8日
    00
  • 一篇文章带你搞懂Vue虚拟Dom与diff算法

    一篇文章带你搞懂Vue虚拟Dom与diff算法完整攻略 什么是虚拟Dom 虚拟Dom是JavaScript对象的形式,它代表了真实Dom的一种抽象。Vue中,我们可以使用Vue.component或者单文件组件的形式编写模板,模板中的内容会经过Vue编译器编译成渲染函数,再由渲染函数渲染为虚拟Dom进行显示。 Vue如何进行渲染 Vue在进行渲染时,会先将模…

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