news 2026/6/15 19:50:59

ES6新增了哪些新特性

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ES6新增了哪些新特性

1.let/const 声明变量(彻底替代 var)

解决var变量提升、没有块级作用域、可重复声明三大问题,是 ES6 最基础也是最必须的特性。

  • let:声明可变的块级作用域变量,不可重复声明,无变量提升(暂时性死区);
  • const:声明不可变的块级作用域常量,必须初始化,不可重复声明,注意:引用类型(对象 / 数组)的内容可修改,只是指向的地址不可变
// var的问题 var a = 1; var a = 2; // 可重复声明,无报错 if (true) { var a = 3; } console.log(a); // 3,无块级作用域,全局覆盖 // let/const的正确用法 let b = 1; // let b = 2; // 报错:Identifier 'b' has already been declared if (true) { let b = 3; console.log(b); } // 3,块级作用域内有效 console.log(b); // 1,不受块内影响 const PI = 3.14; // PI = 3.1415; // 报错:Assignment to constant variable const obj = { name: 'ES6' }; obj.name = 'JavaScript'; // 正常,引用类型内容可修改

2.箭头函数(=>)(简化函数写法)

简化函数定义,同时解决this 指向混乱的问题(箭头函数没有自己的 this,其 this 继承自外层作用域的 this)。

  • 语法(参数) => { 函数体 },单参数可省略(),单行返回可省略{}return
  • 注意:不能作为构造函数(不能 new),没有 arguments 对象,不能用 yield(不能作生成器)。
// 普通函数 vs 箭头函数 const add = function(a, b) { return a + b; }; const add = (a, b) => a + b; // 简化:多参数+单行返回 const fn = a => a * 2; // 单参数省略() const say = () => { console.log('Hello ES6'); }; // 无参数需() // 解决this指向问题(经典场景:定时器/回调函数) const person = { name: 'Tom', sayHi: function() { // 普通函数:this指向调用者person setTimeout(() => { // 箭头函数:this继承自外层sayHi的this,即person console.log(`Hi, I'm ${this.name}`); // Hi, I'm Tom }, 1000); } }; person.sayHi();

使用场景:回调函数(定时器、数组方法、Promise)、简单函数,避免在对象方法、构造函数中使用

3.解构赋值(★★★★★,快速提取数据)

快速从数组 / 对象中提取值,赋值给变量,简化繁琐的取值代码,开发中高频用于接口数据解析、函数参数传值。

  • 数组解构:按顺序提取,支持默认值、剩余参数;
  • 对象解构:按属性名提取,支持重命名、默认值、剩余参数。
// 数组解构 const [a, b, c] = [1, 2, 3]; console.log(a, b, c); // 1 2 3 const [x, , y] = [4, 5, 6]; // 跳过第二个元素 const [m, n = 10] = [7]; // 默认值:n=10 const [first, ...rest] = [1,2,3,4]; // 剩余参数:rest=[2,3,4] // 对象解构(开发高频) const user = { name: 'Alice', age: 20, gender: 'female' }; const { name, age } = user; // 按属性名提取 console.log(name, age); // Alice 20 const { name: uname, gender = 'male' } = user; // 重命名+默认值 const { ...info } = user; // 剩余参数:info={name,age,gender} // 实战场景:接口数据解析 const res = { code: 200, data: { list: [1,2,3], total: 3 }, msg: 'success' }; const { data: { list, total } } = res; // 嵌套解构 c
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 13:17:00

大模型推理卡顿?vLLM的PagedAttention三分钟提速

💓 博客主页:借口的CSDN主页 ⏩ 文章专栏:《热点资讯》 目录 破局大模型推理瓶颈:PagedAttention如何实现三分钟提速? 一、卡顿之源:KV缓存管理的“内存碎片化”困局 二、破局关键:PagedAttenti…

作者头像 李华
网站建设 2026/6/15 12:21:58

Claude Code 深度指南:理解 Constitution、Claude、Agent 三者关系

文章目录Claude Code 是什么?为什么需要理解三者关系?一、Claude Code 核心概念:三个关键角色的定义1. constitution(宪法)——Claude Code 的「顶层行为准则」constitution.md 示例(Claude Code 项目&…

作者头像 李华
网站建设 2026/6/15 18:58:33

基于仿射不变性-复流形结构-芬斯勒度量-子流形嵌入四维几何融合的机械故障诊断方法(Python)

核心流程首先从原始振动信号出发,通过多几何并行的特征提取架构同时进行四个维度的几何分析:在仿射几何维度,系统计算信号的仿射不变量矩、仿射曲率和仿射弧长等特征,这些特征在尺度变换、剪切变形和平移操作下保持不变&#xff0…

作者头像 李华
网站建设 2026/6/15 19:24:16

SPI 驱动 WS2812 GD32方案

遇到的大坑: 1.spi一定要选: 跳变沿选第二个(2Edge)模式 因为跳变沿为 1 的话,MOSI 的空闲电平为高电平,为 2 的话则会延续上次发送的最后电平,我们发送数据的末尾都是低电平,这样 W…

作者头像 李华