ES6学习笔记-扩展的对象功能、解构

本文深入探讨ES6带来的代码简化技巧,包括对象字面量的简洁语法、浅拷贝方法Object.assign()的使用,以及解构赋值的便利性。通过具体示例,展示如何利用这些新特性重构ES5代码,提升开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下内容整理自 阮一峰 的《ECMAScript 6 入门》 第三章、一些其他网络资源及帅气博主的自我理解。

扩展的对象功能

在ES5中,我们对于对象都是以键值对的形式书写,是有可能出现键值对重名的情况

function people(name,age){
	return {
		name:name,
		age:age
	}
}

键值对重名,ES6可以简写成以下:

function people(name,age){
 	return{
 		name,
 		age
 	}
}

ES6同样改进了为对象字面量方法赋值的语法。

ES5为对象添加方法:

const people = {
	name:'lux',
	getName:function(){
		console.log(this.name);
	}
}

ES6通过省略冒号与funciton关键字,让其变得更整洁。
不过话说回来,我真心觉得es6对function这个关键字有着杀父之仇,能弄掉的地方全拿掉了。

const people = {
	name:'will',
	getName(){
		console.log(this.name);
	}
}

ES6浅拷贝 Object.assign()
Object.assign()可以把任意多个源对象自身可枚举的属性拷贝给目标对象,然后返回目标对象。第一参数即为目标对象。在实际项目中,我们为了不改变源对象,一般会把目标对象传为{}

const objA = { name:'cc',age:18 }
const objB = { address:'beijing' }
const objC = {} // 这个为目标对象
const obj = Object.assign(objC,objA,objB)

//我们来把 这几个变量输出来看看
 console.log(objA)   // { name: 'cc', age: 18 }
console.log(objB) // { address: 'beijing' }
console.log(objC) // { name: 'cc', age: 18, address: 'beijing' }
console.log(obj) // { name: 'cc', age: 18, address: 'beijing' }


//我们发现,目标对象objC的值也被改变了。
//so,如果objC也是你的一个源对象的话。请在objC前面填在一个目标对象{}
const obj = Object.assign({},objC,objB,objA)

解构

数组和对象是JS中最常用的表示形式。为了简化提取信息,ES6新增了解构,它能够按照一定的模式,从数组和对象中提取值,对变量进行赋值。

在ES5中我们提取对象中的信息形式如下:

const people = {
	name:'will',
	age:23
}
const name = people.name
const age = people.age
console.log(name + ' --- ' + age)

也就是说在es5中,我们只能一个一个获取。
但是有了解构,就能让我们从对象或者数组中取出数据存为变量。

//对象
const people = {
	name:'will',
	age:23
}
const { name,age } = people
console.log(`${name} --- ${age}`)

//数组
const color = ['red','blue']
const [first, second] = color
console.log(first)
console.log(second)

老铁,整两道测试题吧

    // 请使用 ES6 重构一下代码

    // 第一题
    var jsonParse = require('body-parser').jsonParse

    // 第二题
    var body = request.body
    var username = body.username
    var password = body.password
1.import { jsonParse } from 'body-parser'

2.	const { body , body:{ usename , password } } = request																				
基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。 智能教学辅助系统 这是一个智能教学辅助系统的前端项目,基于 Vue3+TypeScript 开发,使用 Ant Design Vue 作为 UI 组件库。 功能模块 用户模块 登录/注册功能,支持学生教师角色 毛玻璃效果的登录界面 教师模块 备课与设计:根据课程大纲自动设计教学内容 考核内容生成:自动生成多样化考核题目及参考答案 学情数据分析:自动化检测学生答案,提供数据分析 学生模块 在线学习助手:结合教学内容解答问题 实时练习评测助手:生成随练题目并纠错 管理模块 用户管理:管理员/教师/学生等用户基本管理 课件资源管理:按学科列表管理教师备课资源 大屏概览:使用统计、效率指数、学习效果等 技术栈 Vue3 TypeScript Pinia 状态管理 Ant Design Vue 组件库 Axios 请求库 ByteMD 编辑器 ECharts 图表库 Monaco 编辑器 双主题支持(专业科技风/暗黑风) 开发指南 # 安装依赖 npm install # 启动开发服务器 npm run dev # 构建生产版本 npm run build 简介 本项目旨在开发一个基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值