哪个网站可以发宝贝链接做宣传/seo快速排名上首页
1. 对象属性简写
1.1 基本语法
// 传统写法
const name = 'John';
const age = 25;
const user = {name: name,age: age
};// ES6 简写语法
const user = {name,age
};
1.2 实际应用场景
// 1. 函数返回对象
function createUser(name, age, email) {return {name,age,email};
}// 2. React 组件状态
function useState(initialState) {const state = initialState;const setState = (newState) => {// 更新逻辑};return { state, setState };
}// 3. 模块导出
const actions = {increment,decrement,reset
};
export default actions;
2. 对象属性表达式
2.1 基本语法
const prefix = 'user';
const id = 1;// 计算属性名
const user = {[`${prefix}_${id}`]: 'John',[`${prefix}Email`]: 'john@example.com'
};console.log(user.user_1); // 'John'
console.log(user.userEmail); // 'john@example.com'
2.2 实际应用场景
// 1. 动态键名对象
function createStyles(theme) {return {[`button_${theme}`]: {backgroundColor: theme === 'dark' ? '#000' : '#fff',color: theme === 'dark' ? '#fff' : '#000'}};
}// 2. Redux action types
const actionTypes = {[`FETCH_USER_${status}`]: `FETCH_USER_${status}`,[`UPDATE_USER_${status}`]: `UPDATE_USER_${status}`
};// 3. 国际化键值对
const i18n = {[`greeting_${language}`]: '你好',[`farewell_${language}`]: '再见'
};
3. 扩展运算符 (…)
3.1 对象展开
// 基本用法
const base = { a: 1, b: 2 };
const extended = { ...base, c: 3 };
console.log(extended); // { a: 1, b: 2, c: 3 }// 对象合并
const defaults = { theme: 'light', language: 'en' };
const userPreferences = { theme: 'dark' };
const finalPreferences = { ...defaults, ...userPreferences };
console.log(finalPreferences); // { theme: 'dark', language: 'en' }
3.2 实际应用场景
// 1. React 组件属性传递
function Button({ children, ...props }) {return (<button {...props}>{children}</button>);
}// 2. 配置合并
const baseConfig = {api: 'https://api.example.com',timeout: 5000
};const devConfig = {...baseConfig,api: 'http://localhost:3000'
};// 3. 状态更新
setState(prevState => ({...prevState,loading: false,data: newData
}));
4. Object.assign()
4.1 基本用法
// 对象合并
const target = { a: 1 };
const source1 = { b: 2 };
const source2 = { c: 3 };const result = Object.assign(target, source1, source2);
console.log(result); // { a: 1, b: 2, c: 3 }
console.log(target); // { a: 1, b: 2, c: 3 } - 目标对象被修改
4.2 实际应用场景
// 1. 创建对象的浅拷贝
const original = { a: 1, b: { c: 2 } };
const copy = Object.assign({}, original);// 2. 合并默认配置
function createConfig(options) {const defaults = {debug: false,timeout: 5000,retries: 3};return Object.assign({}, defaults, options);
}// 3. 不可变状态更新
const state = { user: { name: 'John' }, theme: 'light' };
const newState = Object.assign({}, state, { theme: 'dark' });
5. Object.is()
5.1 基本用法
// 比较值
console.log(Object.is(5, 5)); // true
console.log(Object.is(5, '5')); // false
console.log(Object.is(NaN, NaN)); // true
console.log(Object.is(+0, -0)); // false// 与 === 的区别
console.log(NaN === NaN); // false
console.log(Object.is(NaN, NaN)); // trueconsole.log(+0 === -0); // true
console.log(Object.is(+0, -0)); // false
5.2 实际应用场景
// 1. 精确的值比较
function areSameValues(x, y) {return Object.is(x, y);
}// 2. NaN 检测
function isReallyNaN(x) {return Object.is(x, NaN);
}// 3. React 中的值比较
function shouldComponentUpdate(nextProps) {return !Object.is(this.props.value, nextProps.value);
}
6. 最佳实践
6.1 选择合适的方法
// 1. 简单对象合并:使用扩展运算符
const merged = { ...obj1, ...obj2 };// 2. 需要深拷贝:使用其他方法
const deepCopy = JSON.parse(JSON.stringify(obj));// 3. 精确值比较:使用 Object.is()
if (Object.is(value1, value2)) {// 相等处理
}
6.2 性能考虑
// 1. 避免过深的对象展开
const obj = {...baseObj,...middlewareObj,...finalObj
};// 2. 使用 Object.assign 处理多个源对象
const result = Object.assign({}, baseConfig,environmentConfig,userConfig
);
相关文章:

ES6 对象扩展:对象简写,对象属性 表达式,扩展运算符 ...,Object.assign,Object.is,用法和应用场景
1. 对象属性简写 1.1 基本语法 // 传统写法 const name John; const age 25; const user {name: name,age: age };// ES6 简写语法 const user {name,age };1.2 实际应用场景 // 1. 函数返回对象 function createUser(name, age, email) {return {name,age,email}; }// …...

2025 持续防范 GitHub 投毒,通过 Sharp4SuoExplorer 分析 Visual Studio 隐藏文件
在2024年底的网络安全事件中,某提权工具被发现植入后门,攻击者利用 .suo 文件作为隐蔽的攻击方式。由于 .suo 文件是 Visual Studio 项目的隐藏配置文件,通常不为安全研究人员所关注,因此为攻击者提供了潜在的攻击渠道。 初步调查…...

PCB走线宽度与过流能力参考
我们PCB走线,线宽与允许通过电流的大小是什么样的?几个因素 1、允许的温升:如果能够允许的铜线升高的温度越高,那么允许通过的电流自然也就越高 2、走线的线宽:线越宽 ,导线横截面积越大,电阻…...

电商项目-分布式事务(四)基于消息队列实现分布式事务
基于消息队列实现分布式事务,实现消息最终一致性 如何基于消息队列实现分布式事务? 通过消息队列实现分布式事务的话,可以保证当前数据的最终一致性。实现思路:将大的分布式事务,进行拆分,拆分成若干个小…...

g++ -> make -> cmake(草稿)
1 Windows上安装mingw 2 构建一个 c 项目 3 g 编译 4 make 编译 5 cmake 编译...

JSON常用的工具方法
前言: 在日常开发中,JSON 数据的处理是常见的需求。无论是数据转换、格式化还是与其他格式的互转,掌握一些常用的工具方法可以大大提高开发效率。本文将介绍一些实用的 JSON 操作方法,帮助你快速上手。 JSON常用的工具方法 1.json字符串转换…...

【Kubernetes Pod间通信-第2篇】使用BGP实现Pod到Pod的通信
Kubernetes中Pod间的通信 本系列文章共3篇: 【Kubernetes Pod间通信-第1篇】在单个子网中使用underlay网络实现Pod到Pod的通信【Kubernetes Pod间通信-第2篇】使用BGP实现Pod到Pod的通信(本文介绍)【Kubernetes Pod间通信-第3篇】Kubernetes中Pod与ClusterIP服务之间的通信…...

[权限提升] Windows 提权 维持 — 系统错误配置提权 - Trusted Service Paths 提权
关注这个专栏的其他相关笔记:[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01:Trusted Service Paths 提权原理 Windows 的服务通常都是以 System 权限运行的,所以系统在解析服务的可执行文件路径中的空格的时候也会以 System 权限进行解析&a…...

8. k8s二进制集群之Kubectl部署
创建kubectl证书请求文件生成admin证书文件复制admin证书到指定目录生成kubeconfig配置文件接下来完成kubectl配置文件的角色绑定【扩展】kubectl命令补全操作继续上一篇文章《k8s二进制集群之Kube ApiServer部署》下面介绍一下k8s中的命令行管理工具kubectl。 通过kubectl可以…...

初学 Xvisor 之理解并跑通 Demo
官网:https://www.xhypervisor.org/ quick-start 文档:https://github.com/xvisor/xvisor/blob/master/docs/riscv/riscv64-qemu.txt 零、Xvisor 介绍 下面这部分是 Xvisor 官方的介绍 Xvisor 是一款开源的 Type-1 虚拟机管理程序,旨在提供一…...

深度内容运营与开源AI智能名片2+1链动模式S2B2C商城小程序在打造种草社区中的应用研究
摘要:移动互联网的迅猛发展极大地改变了消费者的购物行为和消费习惯,传统的购物体验已难以满足用户日益增长的个性化需求。在这种背景下,深度内容运营和实时互动成为提升用户购物体验、影响用户购物行为的重要手段。同时,开源AI智…...

RNN/LSTM/GRU 学习笔记
文章目录 RNN/LSTM/GRU一、RNN1、为何引入RNN?2、RNN的基本结构3、各种形式的RNN及其应用4、RNN的缺陷5、如何应对RNN的缺陷?6、BPTT和BP的区别 二、LSTM1、LSTM 简介2、LSTM如何缓解梯度消失与梯度爆炸? 三、GRU四、参考文献 RNN/LSTM/GRU …...

音频录制一般在什么情况下会选择保存为PCM?什么情况会选择保存为WAV?
在音频开发中,选择保存为 PCM 或 WAV 格式取决于具体的应用场景和需求。以下是两种格式的特点以及适用场景的分析: PCM 格式 特点: 原始音频数据: PCM 是未压缩的原始音频数据,没有任何文件头或元数据。数据直接以二进…...

C#常用744单词
1.visual 可见的 2.studio 工作室 3.dot 点 4.net 网 5.harp 尖端的,锋利的。 6.amework 骨架,构架,框架 7.beta 测试版,试用版 8.XML(全称:eXtensible Markup Language)…...

如何理解算法的正确性?
循环不变式(Loop Invariant) 是算法设计和程序验证中的一个核心概念,用于证明循环的正确性。它是在循环的每次迭代开始和结束时均保持为真的一种条件或性质,帮助开发者确保循环按预期工作,最终达到目标状态。 循环不变…...

蓝桥杯试题:排序
一、问题描述 给定 nn 个正整数 a1,a2,…,ana1,a2,…,an,你可以将它们任意排序。现要将这 nn 个数字连接成一排,即令相邻数字收尾相接,组成一个数。问,这个数最大可以是多少。 输入格式 第一行输入一个正整数 nnÿ…...

实验十一 Servlet(二)
实验十一 Servlet(二) 【实验目的】 1.了解Servlet运行原理 2.掌握Servlet实现方式 【实验内容】 改造实验10,引入数据库,创建用户表,包括用户名和密码:客户端通过login.jsp发出登录请求,请求…...

第五天 初步了解ArkTS和ArkUI
初步了解ArkTS和ArkUI,可以从以下几个方面进行概述: 一、ArkTS简介 定义与关系: ArkTS是HarmonyOS(鸿蒙系统)优选的主力应用开发语言。它基于TypeScript(TS)进行扩展,兼容TS的所有特…...

java中的锁面试题
1、多线程中 synchronized 锁升级的原理是什么? synchronized 是JVM层面的锁,是 Java 关键字,通过 monitor 对象来完成,synchronized 的实现涉及到锁的升级,具体为无锁、偏向锁、自旋锁、重量级锁 synchronized 锁升级…...

ES6 变量解构赋值总结
1. 数组的解构赋值 1.1 基本用法 // 基本数组解构 const [a, b, c] [1, 2, 3]; console.log(a); // 1 console.log(b); // 2 console.log(c); // 3// 跳过某些值 const [x, , y] [1, 2, 3]; console.log(x); // 1 console.log(y); // 3// 解构剩余元素 const [first, ...re…...

知识蒸馏教程 Knowledge Distillation Tutorial
来自于:Knowledge Distillation Tutorial 将大模型蒸馏为小模型,可以节省计算资源,加快推理过程,更高效的运行。 使用CIFAR-10数据集 import torch import torch.nn as nn import torch.optim as optim import torchvision.tran…...

DeepSeek各版本说明与优缺点分析
DeepSeek各版本说明与优缺点分析 DeepSeek是最近人工智能领域备受瞩目的一个语言模型系列,其在不同版本的发布过程中,逐步加强了对多种任务的处理能力。本文将详细介绍DeepSeek的各版本,从版本的发布时间、特点、优势以及不足之处࿰…...

java进阶专栏的学习指南
学习指南 java类和对象java内部类和常用类javaIO流 java类和对象 类和对象 java内部类和常用类 java内部类精讲Object类包装类的认识String类、BigDecimal类初探Date类、Calendar类、SimpleDateFormat类的认识java Random类、File类、System类初识 javaIO流 java IO流【…...

kamailio-osp模块
该文档详细讲解了如何在Kamailio中配置和使用OSP模块(Open Settlement Protocol Module),以实现基于ETSI标准的安全多边对等互联(Secure Multi-Lateral Peering)。以下是核心内容的总结: 1. 模块功能 OSP模…...

【TensorFlow】T1:实现mnist手写数字识别
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 1、设置GPU import tensorflow as tf gpus tf.config.list_physical_devices("GPU")if gpus:gpu0 gpus[0]tf.config.experimental.set_memory_g…...

Rapidjson 实战
Rapidjson 是一款 C 的 json 库. 支持处理 json 格式的文档. 其设计风格是头文件库, 包含头文件即可使用, 小巧轻便并且性能强悍. 本文结合样例来介绍 Rapidjson 一些常见的用法. 环境要求 有如何的几种方法可以将 Rapidjson 集成到您的项目中. Vcpkg安装: 使用 vcpkg instal…...

【React】受控组件和非受控组件
目录 受控组件非受控组件基于ref获取DOM元素1、在标签中使用2、在组件中使用 受控组件 表单元素的状态(值)由 React 组件的 state 完全控制。组件的 state 保存了表单元素的值,并且每次用户输入时,React 通过事件处理程序来更新 …...

Ollama+deepseek+Docker+Open WebUI实现与AI聊天
1、下载并安装Ollama 官方网址:Ollama 安装好后,在命令行输入, ollama --version 返回以下信息,则表明安装成功, 2、 下载AI大模型 这里以deepseek-r1:1.5b模型为例, 在命令行中,执行&…...

DEEPSEKK GPT等AI体的出现如何重构工厂数字化架构:从设备控制到ERP MES系统的全面优化
随着深度学习(DeepSeek)、GPT等先进AI技术的出现,工厂的数字化架构正在经历前所未有的变革。AI的强大处理能力、预测能力和自动化决策支持,将大幅度提升生产效率、设备管理、资源调度以及产品质量管理。本文将探讨AI体(…...

阿莱(arri)mxf文件变0字节的恢复方法
阿莱(arri)是专业级的影视产品软硬件供应商,很多影视作品都是使用阿莱(arri)的设备拍摄出来的。总体上来讲阿莱(arri)的文件格式有mov和mxf两种,这次恢复的是阿莱(arri)的mxf,机型是arri mini,素材保存在一个8t的硬盘上,使用的是e…...