ES6 部分新特性
解决了var的一些遗留问题
- var 可以重复声明变量
- var 不可以限制修改
- var 不支持块级作用域,只支持函数作用域
解决方案: 引入let和const
const 对象 可以避免对象被重新赋值,可以修改的属性
什么时候使用const?
- 定义常量
- 定义对象 防止对象被篡改
- 定义函数表达式
函数简化书写 -箭头函数
function [函数名](参数){
[方法;]
renturn 表达式/数据;
}
改善方案:箭头函数 用 =>
代替 function
,仅包含return的函数可以进一步简化
(参数) => 表达式/数据; //仅有一个参数时括号可以省略
//如果仅包含一条语句且不含return 同样可以省去{}
在实际操作中有时候为了防止,简化时,将有用的{}吞掉,可在外层用()包裹
箭头函数的现实意义
当定义定义对象方法时,出现函数套函数的情况,此时内层的this不再指向对象
ES5的解决方法时,将外层this另存,在内层调用另存的this,而不是直接使用this
let self = this;
而箭头函数没有this,this由父级继承而来,有效的解决了这个问题,使编码逻辑变得简单
Number和Math增加新的属性和方法
Array数组增加了新的方法
Array
过滤器 - filter
映射 - map
汇总 - reduce
some() 或门
every() 与门
.of() .from()
提供了新的数据结构 MAP字典、SET集合
MAP字典
比对象更灵活的映射(键可以是更多的类型),键是有序的
size 属性 记录键的数量
.get()
.set(键,值)
若键为 NaN 则其他表达式值为NaN 也能正常访问
SET集合
存储不重复(不恒等),的集合
- +0 与 -0 在存储判断唯一性的时候是恒等的,所以不重复;
- undefined 与 undefined 是恒等的,所以不重复;
- NaN 与 NaN 是不恒等的,但是在 Set 中只能存一个,不重复。
.add(x) 方法:向集合添加元素x
.has(x) 方法:判断当前 set 中是否含有 x
编码的简化 -解构赋值
对赋值运算符的扩展
类似python的赋值方式
剩余运算符 在要赋值的对象前加三点 表示讲剩余部分赋值给它
可以对解构 赋值默认值
数组的结构赋值可以 比较简单地实现元素值的交换
[a,b] = [b,a]
// 可以做冒泡
// 保留初始值,解构
对象的解构赋值可以获得对象的一个裁剪版
{name,sex} = {
name: “海胆",
sex: "男",
hobby: "女"
}
可以从一个较大的对象中,仅仅提取自己需要的属性,而不需要使用obj.属性的方式访问
模板字符串
`xxx${a}xx`
模板字符串可以方便的通过js向HTML插入标签树 (普通字符串写一行比较方便)
可以对模板字符串进行插值 ,相较于+
更方便
引入类class 解决原先只有对象的窘境
extends关键字 继承
super() 超类 引用父类构造函数
对象
- 对象的属性可以直接写变量,属性名是变量名,属性值是变量值
let x=123;
// {x} ---> {x: 123}
// 同理 命名方法 方法名为属性名 方法体为属性值
- 方括号 属性名表达式
- 扩展运算符(…) 取出参数对象所有可遍历属性
- 可用于展开数组
- Object.assign(target, source_1, ···) 将源对象的所有可枚举属性复制到目标对象中
- Object.is(value1, value2) 用来比较两个值是否严格相等
与===
却别
- +0不等于-0
- NaN等于本身
JSON
json中简写
如果key和value名相同则可以简写为一个名
如果方法名默认或与key相同也可以做简化
json的新引用
串行化 JSON.stringify(obj)
字符串转json JSON.parse(str)
引入Module模块化
- 避免引入时层层依赖
- 减少命名冲突
- 提高执行效率
Module详述笔记
新增Promise方法
–简化异步回调结构,避免层层嵌套回调地狱
内容会不断更新,欢迎批评指正。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)