当前位置: 首页 > news >正文

JavaScript 对象:一份全面的回顾

JavaScript 对象:一份全面的回顾

JavaScript 对象是基础的数据结构,是更复杂数据类型的基石。它们是一个由属性组成的集合,每个属性都包含一个键和一个值。掌握它们是精通 JavaScript 的关键。🔑


对象基础

对象提供了一种组织相关数据和功能的方式。你可以使用两种主要方法来访问对象的属性:

  • 点表示法(Dot Notation)对象.键
  • 方括号表示法(Bracket Notation)对象['键']

这两种方法都可以用于访问和设置属性。当键名存储在变量中或包含特殊字符时,方括号表示法尤为有用。

const person = {name: "Alice",age: 30
};person.job = "Engineer"; // 使用点表示法添加属性
person["hobby"] = "Knitting"; // 使用方括号表示法添加属性

管理属性

要从对象中移除一个属性,你需要使用 delete 操作符

const person = { name: "Alice", job: "Engineer" };
delete person.job;
console.log(person.job); // undefined

你可以使用 hasOwnProperty() 方法in 操作符来检查对象是否拥有某个属性。hasOwnProperty() 方法检查对象自身的属性(不包括继承的属性),而 in 操作符则检查自身和继承的属性。

console.log(person.hasOwnProperty("name")); // true
console.log("name" in person);             // true

对于拥有嵌套属性的对象,你可以通过链式使用点或方括号表示法来逐层深入,访问你需要的数据。

const user = {contact: {phone: {home: "123-456-7890"}}
};
console.log(user.contact.phone.home); // "123-456-7890"

数据类型:原始 vs. 非原始

在 JavaScript 中,数据类型被分为原始(Primitive) 类型和非原始(Non-primitive) 类型。

  • 原始类型 是单一的、不可变的值(例如:字符串、数字、布尔值)。
  • 非原始类型 是对象(包括数组和函数),它们可以包含多个值,并且是可变的。

对象方法

对象方法是与对象关联的函数。它们作为对象的属性被定义,并可以通过内部的 this 关键字来引用对象本身,从而访问和操作其数据。

const person = {name: "Bob",sayHello: function() {return "你好,我的名字是 " + this.name;}
};
console.log(person.sayHello()); // "你好,我的名字是 Bob"

现代对象特性

现代 JavaScript 提供了处理对象的强大语法。

  • 可选链操作符(?.:这个操作符让你能安全地访问深层嵌套的属性或方法,而无需担心中间的属性是否存在,从而防止 TypeError 的发生。
  • 对象解构(Object Destructuring):它允许你用一种简洁、清晰的语法从对象中提取属性并赋值给变量。

使用 JSON

JSON(JavaScript 对象表示法)是一种基于文本的数据交换格式。它是现代 Web 开发的关键部分,通常用于在服务器和 Web 应用之间传输数据。

  • JSON.stringify():将一个 JavaScript 对象转换为 JSON 字符串。这对于存储或传输数据非常有用。
  • JSON.parse():将一个 JSON 字符串转换回 JavaScript 对象。当你从 Web 服务器或 localStorage 获取 JSON 数据并需要在应用中操作它时,这个方法至关重要。

文章转载自:

http://sUjjv6mZ.yktwr.cn
http://q1Gy4qaf.yktwr.cn
http://pmnC9p29.yktwr.cn
http://fm7YVcbB.yktwr.cn
http://27diJBTA.yktwr.cn
http://ZEV9UAUN.yktwr.cn
http://yRqDdUie.yktwr.cn
http://jDDGZxl1.yktwr.cn
http://TMdMLbSE.yktwr.cn
http://EHWvWsAB.yktwr.cn
http://u24npV0I.yktwr.cn
http://3WcuBaKk.yktwr.cn
http://OvnsLuWt.yktwr.cn
http://h2Tkj13U.yktwr.cn
http://1FUVjiWJ.yktwr.cn
http://hEzJvg5X.yktwr.cn
http://GSfCHj28.yktwr.cn
http://1qpuo85V.yktwr.cn
http://yqrIRZn8.yktwr.cn
http://aG9mdKJI.yktwr.cn
http://TsBqXumb.yktwr.cn
http://5qzbfNYn.yktwr.cn
http://ZmRNETZp.yktwr.cn
http://vzPZv9eG.yktwr.cn
http://x7XsCLAm.yktwr.cn
http://vsVrNdya.yktwr.cn
http://m98p8FBj.yktwr.cn
http://W8BRKNXT.yktwr.cn
http://dAUonWMq.yktwr.cn
http://tKUMkZwZ.yktwr.cn
http://www.dtcms.com/a/381882.html

相关文章:

  • 逐时nc数据批量处理为日平均
  • ffmpeg推流测试
  • SQL注入常见攻击点与防御详解
  • 后端(FastAPI)学习笔记(CLASS 3):Tortoise ORM
  • C++-STL
  • Java 大视界 -- Java 大数据在智能家居场景联动与用户行为模式挖掘中的应用
  • XCKU15P-2FFVA1760I AMD 赛灵思 Xilinx Kintex UltraScale+ FPGA
  • 图论基础知识
  • DMA硬件架构解析:总线矩阵与核心组件
  • 从军用到掌心:固态硬盘(SSD)的演进与革命
  • 通俗解释redis高级:redis持久化(RDB持久化、AOF持久化)、redis主从、redis哨兵、redis分片集群
  • 【C++】类和对象——(上)
  • 解决Windows系统“‘php‘ 不是内部或外部命令”报错的完整指南
  • 用 Go 打造一个服务器资源指标采集器:结合 Prometheus Exporter 实战
  • Unity学习----【进阶】TextMeshPro学习(二)--进阶知识点(样式表,颜色渐变预设,精灵图片资源)
  • 从理论到落地:神经网络稀疏化设计构架中网络剪枝的深度实践与创新
  • ARM、AArch64、amd64、x86_64、x86有什么区别?
  • 机器学习项目-南方电网电力负荷预测
  • python标准库有哪些模块,简单总结下。
  • 文献阅读·MCformer:基于混合通道变换的多变量时间序列预测
  • 【软件操作】飞牛nas系统:笔记本息屏、合盖均不关机
  • 【SPI】【二】SPI控制器驱动代码详解
  • pandas读取复合列名列头及数据和处理
  • jenkins触发部署
  • 【pure-admin】项目登录验证码实现分析
  • Docker快速入门手册
  • 【C++设计模式】第五篇:装饰器模式
  • linux C 语言开发 (十) 进程间通讯--信号
  • 绿色环保活动平台(AI问答、WebSocket即时通讯、协同过滤算法、Echarts图形化分析)
  • 飞算JavaAI实战高效构建电商系统核心功能模块全解析