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

【Java Web学习 | 第十篇】JavaScript(4) 对象

【Java Web学习 | 第十篇】JavaScript(4) - 对象Object深度详解2026最新版恭喜你完成数组与函数进阶对象Object是 JavaScript 中最重要、最核心的数据结构。在 Java Web 开发中后端 Spring Boot 返回的 JSON 数据本质上就是对象或对象数组几乎所有前后端数据交互都围绕对象展开。本篇将从基础到进阶系统讲解对象的使用帮助你轻松处理后端返回的 User、Order、Product 等实体数据。1. 对象基础创建与访问// 1. 对象字面量最常用方式constuser{id:1001,username:chongyang,email:chongyangexample.com,age:26,isActive:true,roles:[USER,ADMIN],// 数组作为属性profile:{// 嵌套对象avatar:https://example.com/avatar.jpg,bio:热爱 Java Web 全栈开发,joinDate:2025-03-01}};// 2. 访问属性两种方式console.log(user.username);// 点语法推荐属性名合法时使用console.log(user[email]);// 方括号语法属性名是变量或含特殊字符时使用// 3. 可选链Optional Chaining—— 2026 强烈推荐避免报错console.log(user.profile?.bio);// 热爱 Java Web 全栈开发console.log(user.address?.city);// undefined安全不会报错2. 对象解构赋值ES6 最实用特性之一对象解构是处理后端返回 JSON 时最高频的操作能极大提升代码可读性。// 基本解构const{username,email,age}user;console.log(username,email,age);// 重命名 默认值const{username:loginName,// 重命名age:userAge18,// 默认值isActive:activefalse}user;console.log(loginName);// chongyang// 嵌套对象解构const{profile:{bio,avatar},roles}user;console.log(bio);实战技巧从后端接口返回的大对象中精准提取需要的数据。3. 对象展开运算符…—— 不可变数据更新神器// 1. 复制对象浅拷贝constuserCopy{...user};// 2. 添加/修改属性推荐写法不修改原对象constupdatedUser{...user,age:27,// 修改年龄lastLogin:newDate().toISOString(),// 新增字段profile:{...user.profile,bio:已更新个人简介// 修改嵌套对象}};// 3. 合并多个对象constdefaultSettings{theme:light,language:zh};constuserSettings{...defaultSettings,theme:dark};重要展开运算符是浅拷贝嵌套对象仍为引用。如果需要深拷贝可使用structuredClone()现代浏览器支持或 lodash 的cloneDeep。4. 对象常用方法ES6// 1. Object.keys() / values() / entries()console.log(Object.keys(user));// [id, username, email, ...]console.log(Object.values(user));// [1001, chongyang, ...]console.log(Object.entries(user));// [[id, 1001], [username, chongyang], ...]// 2. for...in 循环遍历对象自身属性for(letkeyinuser){if(user.hasOwnProperty(key)){// 过滤原型链属性console.log(key,user[key]);}}// 3. Object.assign()合并对象较老写法constmergedObject.assign({},defaultSettings,userSettings);5. 对象与 JSON前后端交互核心// 前端 → 后端对象转 JSON 字符串constjsonStrJSON.stringify(updatedUser);console.log(jsonStr);// 后端 → 前端JSON 字符串转对象constreceivedUserJSON.parse(jsonStr);console.log(receivedUser);// 注意JSON 不支持函数、undefined、Date 等类型会自动转换6. 实战示例处理后端返回的用户信息并渲染!DOCTYPEhtmlhtmllangzh-CNheadmetacharsetUTF-8title对象实战 - 用户信息展示/titlestyle.card{max-width:500px;margin:30px auto;padding:24px;border:1px solid #ddd;border-radius:12px;background:white;box-shadow:0 4px 15pxrgba(0,0,0,0.1);}/style/headbodydivclasscardiduserCard/divscript// 模拟后端返回的数据constapiResponse{code:200,message:success,data:{id:1001,username:chongyang,email:chongyangexample.com,age:26,roles:[USER,ADMIN],profile:{bio:Java Web 全栈学习者,avatar:https://picsum.photos/id/64/200}}};// 处理并渲染企业常用模式functionrenderUserInfo(response){const{code,data}response;// 解构if(code!200){document.getElementById(userCard).innerHTMLp stylecolor:red请求失败${response.message}/p;return;}const{username,email,age,roles,profile}data;consthtmlimg src${profile.avatar} alt头像 stylewidth:80px;height:80px;border-radius:50%;float:right; h2${username}/h2 pstrong邮箱/strong${email}/p pstrong年龄/strong${age}/p pstrong角色/strong${roles.join(、)}/p pstrong简介/strong${profile.bio}/p;document.getElementById(userCard).innerHTMLhtml;}// 执行渲染renderUserInfo(apiResponse);/script/body/html7. 小练习建议立即完成给定后端返回的对象解构出username、email、profile.bio并打印。使用展开运算符创建一个新对象在原user基础上增加lastLoginTime和loginCount: 15不修改原对象。写一个函数formatUser(user)接收用户对象返回格式化后的字符串用户名: xxx年龄: xx角色: xxx。使用Object.entries()遍历对象并把每个键值对以key: value形式输出。下一篇文章预告《【Java Web学习 | 第十一篇】JavaScript(5) - 异步编程Promise async/await与 Fetch API》我们将进入真正的前后端交互部分学习如何使用fetch调用 Spring Boot 的 RESTful API实现登录、查询用户列表、提交表单等功能。本篇核心总结快记口诀创建{}对象字面量访问点语法 可选链?.解构const {a, b} obj更新{ ...oldObj, newProp: value }转换JSON.stringify()/JSON.parse()有问题随时问想要更多嵌套对象解构示例需要对象深拷贝完整方案或直接进入异步 Fetch篇回复“给我练习答案”或“下一篇 Fetch”我立刻继续对象是 JavaScript 的灵魂掌握后你处理后端 JSON 数据会变得非常轻松。继续加油你的 Java Web 全栈之路已经进入关键交互阶段

相关文章:

【Java Web学习 | 第十篇】JavaScript(4) 对象

【Java Web学习 | 第十篇】JavaScript(4) - 对象(Object)深度详解(2026最新版) 恭喜你完成数组与函数进阶! 对象(Object) 是 JavaScript 中最重要、最核心的数据结构。在 Java Web 开发中&…...

终极指南:如何深度探索Alerter的10个隐藏高级功能

终极指南:如何深度探索Alerter的10个隐藏高级功能 【免费下载链接】Alerter Tapadoo/Alerter: 是一个简单易用的 Android 通知和进度条控件库。适合对 Android 开发、用户界面以及想要在 Android 应用中显示通知和进度条的开发者。 项目地址: https://gitcode.com…...

【Java Web学习 | 第九篇】JavaScript(3) 数组+函数

【Java Web学习 | 第九篇】JavaScript(3) - 数组与函数进阶(2026最新版) 本篇对数组和函数进行更深入、实用的讲解,这是 Java Web 开发中处理后端返回数据(JSON 数组/对象列表)和封装业务逻辑的核心技能。 由于你特别…...

GitHub下载加速终极指南:3分钟让你的克隆速度提升100倍

GitHub下载加速终极指南:3分钟让你的克隆速度提升100倍 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 如果你经常需要…...

PlotJuggler颜色映射终极指南:如何创建惊艳的数据可视化效果

PlotJuggler颜色映射终极指南:如何创建惊艳的数据可视化效果 【免费下载链接】PlotJuggler The Time Series Visualization Tool that you deserve. 项目地址: https://gitcode.com/gh_mirrors/pl/PlotJuggler PlotJuggler是一款功能强大的时间序列数据可视化…...

EC2Instances.info未来发展规划:AI驱动的智能实例推荐系统

EC2Instances.info未来发展规划:AI驱动的智能实例推荐系统 【免费下载链接】ec2instances.info Amazon EC2 instance comparison site 项目地址: https://gitcode.com/gh_mirrors/ec/ec2instances.info EC2Instances.info作为专业的Amazon EC2实例比较平台&a…...

npm新手必看:如何用package.json一键运行本地JS文件(附常见错误排查)

npm新手必看:如何用package.json一键运行本地JS文件(附常见错误排查) 刚接触Node.js生态的开发者,往往会被各种工具和配置文件搞得晕头转向。其中package.json作为项目的"身份证"和"说明书",掌握它…...

终极指南:5分钟掌握TegraRcmGUI Switch注入工具的核心能力

终极指南:5分钟掌握TegraRcmGUI Switch注入工具的核心能力 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI TegraRcmGUI是一款专为Nintendo Switc…...

MMSkeleton部署指南:从开发环境到生产环境的完整迁移

MMSkeleton部署指南:从开发环境到生产环境的完整迁移 【免费下载链接】mmskeleton A OpenMMLAB toolbox for human pose estimation, skeleton-based action recognition, and action synthesis. 项目地址: https://gitcode.com/gh_mirrors/mm/mmskeleton MM…...

如何用Win11Debloat让你的Windows系统速度提升70%:终极优化指南

如何用Win11Debloat让你的Windows系统速度提升70%:终极优化指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutt…...

3个秘诀彻底解决机械键盘连击问题:Keyboard Chatter Blocker全攻略

3个秘诀彻底解决机械键盘连击问题:Keyboard Chatter Blocker全攻略 【免费下载链接】KeyboardChatterBlocker A handy quick tool for blocking mechanical keyboard chatter. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyboardChatterBlocker 机械键盘…...

如何3步搭建AI驱动的多智能体股票分析平台?TradingAgents-CN全指南

如何3步搭建AI驱动的多智能体股票分析平台?TradingAgents-CN全指南 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 面对复杂多变的金…...

HighwayEnv完全指南:10分钟快速上手自动驾驶强化学习环境

HighwayEnv完全指南:10分钟快速上手自动驾驶强化学习环境 【免费下载链接】HighwayEnv A minimalist environment for decision-making in autonomous driving 项目地址: https://gitcode.com/gh_mirrors/hi/HighwayEnv HighwayEnv是一个轻量级的自动驾驶决…...

Fish 4.6发布,命令行工具迎来新升级

近日,基于 Rust 语言开发的现代化交互式 Shell Fish 4.6 正式发布。它以智能提示和友好体验著称,此次更新带来细节优化,支持 systemd 环境变量,提升与 Linux 系统集成度。深度集成 systemd2024 年起,systemd 引入三个用…...

smart-mqtt v1.5.4发布,认证能力大升级

smart-mqtt v1.5.4正式发布,此次版本聚焦企业级连接认证能力升级,推出全新高级认证插件,在高性能底座上补齐企业级接入能力,还公布了获取方式与未来规划。版本核心亮点v1.5.4重点通过advanced-auth-plugin让连接认证更适配企业真实…...

【深度验证】ArcGIS Band Collection Statistics相关性分析结果偏差的根源探究

1. 当GIS分析结果与统计软件不一致时 最近在做一个遥感数据分析项目时,我遇到了一个奇怪的现象:同样的数据集,在ArcGIS中使用Band Collection Statistics工具计算出的皮尔逊相关系数,与在Excel和R中计算的结果存在明显差异。起初我…...

别只刷题了!用Python/C++搞定考研机试高频算法(附PIPIOJ真题代码重构与优化)

从暴力解法到优雅实现:Python/C双语言拆解考研机试高频算法 考研机试不仅考察算法理解,更检验工程化编码能力。许多考生能写出正确但冗长的代码,却在时间优化和代码简洁性上失分。本文将用Python和C对比实现六大高频题型,重点分析…...

Docker下Kong+Konga全栈部署避坑指南(附PostgreSQL 9.6配置)

Docker环境下Kong与Konga全栈部署实战指南 引言 在现代微服务架构中,API网关扮演着流量调度与安全管控的关键角色。Kong作为开源API网关的标杆产品,凭借其插件化架构和强大性能,已成为企业级API管理的首选方案。而Konga作为Kong的图形化管理…...

HorizonCalendar与Airbnb设计系统的完美融合:打造iOS应用中的顶级日历体验

HorizonCalendar与Airbnb设计系统的完美融合:打造iOS应用中的顶级日历体验 【免费下载链接】HorizonCalendar A declarative, performant, iOS calendar UI component that supports use cases ranging from simple date pickers all the way up to fully-featured …...

游戏多开检测技术深度解析与实战绕过方案

1. 游戏多开检测技术全景解析 游戏多开检测本质上是一种防止同一程序重复运行的技术手段。我在逆向分析各类游戏客户端时发现,现代游戏通常会采用组合拳式的检测策略,从简单的进程查找到复杂的驱动级验证,防御层级越来越深。对于开发者而言&a…...

DAMO-YOLO智能视觉系统作品集:多场景零售货架检测效果惊艳展示

DAMO-YOLO智能视觉系统作品集:多场景零售货架检测效果惊艳展示 1. 零售视觉检测的新标杆 走进现代零售空间,商品陈列的艺术背后隐藏着复杂的运营挑战。传统的人工巡检方式已经难以满足快节奏零售环境的需求,这正是DAMO-YOLO智能视觉系统大放…...

4步完整指南:如何用OpenCore Legacy Patcher让旧Mac重获新生

4步完整指南:如何用OpenCore Legacy Patcher让旧Mac重获新生 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 想让被苹果抛弃的旧Mac电脑重新运行最…...

uni-app Android应用华为审核隐私权限提示与上架授权说明实战指南

1. uni-app Android应用华为审核隐私权限问题解析 第一次用uni-app开发Android应用准备上架华为市场时,我被审核驳回的理由整懵了——"缺少权限使用说明"。明明iOS版本在manifest.json配得好好的,怎么到Android就出问题?后来才发现…...

Tree of Thoughts终极指南:5分钟掌握思维树算法原理与实战应用

Tree of Thoughts终极指南:5分钟掌握思维树算法原理与实战应用 【免费下载链接】tree-of-thought-llm [NeurIPS 2023] Tree of Thoughts: Deliberate Problem Solving with Large Language Models 项目地址: https://gitcode.com/gh_mirrors/tr/tree-of-thought-l…...

解码器精准调优:LoRA赋能Depth-Anything-V2实现绝对深度估计

1. LoRA技术如何革新Depth-Anything-V2的深度估计 当我在实验室第一次尝试用LoRA微调Depth-Anything-V2时,意外发现只需要调整解码器中1x1卷积层的极少量参数,就能让相对深度模型输出精确的绝对深度值。这就像给一个只会判断"远近"的模型突然装…...

Python从入门到精通(第14章):迭代器与生成器

开头导语 这是本系列第14章。前面你已经用过很多次迭代器和生成器——for x in data 的背后是什么,map 返回的对象为什么不能下标访问,range 为什么不会占很多内存——这些问题的答案都在本章。通过亲手实现一个迭代器类,你会对 Python 迭代协议有清晰的认识,遇到相关错误…...

2026上海紧固件专业展观察:12.9级螺栓为何成为高端制造核心紧固方案?

2026第十六届上海紧固件专业展(Fastener Expo Shanghai 2026)将于6月24日至26日在上海国家会展中心举办。作为紧固件行业的重要展示窗口,本届展会将集中呈现高强度紧固件的发展趋势,其中12.9级螺栓已成为当前制造业升级的重要标志…...

美国人形机器人发展浅析

美国人形机器人产业正从实验室研发向工业实用化与商业化加速过渡,主要企业(波士顿动力、特斯拉、Figure AI等)均已推出量产级产品,覆盖工业制造、军事应用等核心场景,技术迭代与规模化部署成为当前行业关键词。一、主要…...

GLM-4v-9b效果展示:学术海报截图→研究方法/结果/结论三段式结构化提取

GLM-4v-9b效果展示:学术海报截图→研究方法/结果/结论三段式结构化提取 1. 模型能力概览 GLM-4v-9b是智谱AI在2024年推出的开源多模态模型,拥有90亿参数,专门处理文本和图像的联合理解任务。这个模型最大的特点是能够同时看懂图片和文字&am…...

构建语音搜索引擎:FireRedASR Pro与Elasticsearch整合实践

构建语音搜索引擎:FireRedASR Pro与Elasticsearch整合实践 你有没有想过,对着手机说句话,就能从海量文档里精准找到你想要的信息?比如,在公司的知识库里,直接问“上季度华东区的销售数据报告在哪&#xff…...