es6是javaScript的重大升级,2015年发布,引入let/const(块级作用域、禁止重复声明、暂时性死区)、解构赋值、模板字符串、箭头函数、默认参数、展开运算符、Promises和模块化等特性,提升代码简洁性、安全性和可维护性。

ES6(全称 ecmascript 2015)是 javascript 语言的一次重大升级,2015 年正式发布,标志着 js 进入现代化开发阶段。它不是一门新语言,而是 JavaScript 的标准规范更新,解决了 ES5 中长期存在的语法冗余、作用域混乱、异步难写等问题,让代码更简洁、安全、易维护。
let 和 const:真正可控的变量声明
取代老旧的 var,带来三个关键改进:
- 块级作用域:在
{}内声明,外部无法访问,比如if或for块里定义的变量不会泄漏到外层 - 禁止重复声明:同一作用域下,
let a; let a;或const b = 1; const b = 2;都会报错 - 无变量提升 + 暂时性死区:不能在声明前使用,比如
console.log(x); let x = 10;直接报ReferenceError - const 不是“完全不可变”:对对象或数组用
const声明,只是不能重新赋值(即不能改引用地址),但可以修改其内部属性或元素,例如:const arr = [1]; arr.push(2);是合法的
解构赋值:一行提取数据
从数组或对象中按结构快速取值,大幅减少样板代码:
- 数组解构:
const [first, , third] = ['a', 'b', 'c'];→first === 'a',中间用逗号跳过 - 对象解构:
const { name, age: years } = { name: 'Tom', age: 30 };→ 变量名可重命名(years) - 默认值支持:
const { city = 'Beijing' } = {};→ 缺失属性时自动填充 - 函数参数解构:
function greet({ name, msg = 'Hi' }) { return `${msg}, ${name}!`; }
模板字符串与箭头函数:写法更自然
告别 + 拼接和 function 冗长写法:
立即学习“Java免费学习笔记(深入)”;
- 模板字符串:用反引号
`包裹,支持多行和嵌入表达式:const str = `Hello ${user.name}, you have ${count || 0} new messages.`; - 箭头函数:简化函数定义,且
this绑定定义时的上下文,避免回调中丢失:list.map(item => item.id)或setTimeout(() => console.log(this.value), 100); - 单参数可省括号,单表达式可省
{}和return,如:x => x * 2
其他高频实用特性
这些特性虽不总被单独强调,但在日常开发中高频出现: