ES6是JavaScript在2015年发布的标准化版本(ES2015),通过let/const、箭头函数、模板字符串、解构赋值、Promise和模块化等特性构建现代语法体系,提升代码确定性与可维护性。

ES6 不是“新教程”,而是 JavaScript 语言在 2015 年正式落地的标准化版本(官方名 ES2015),它把过去零散、不规范的写法收束成一套现代语法体系——你写的不是“更高级的 JS”,而是符合当前工程实践的 JS。
let/const 替代 var:解决变量作用域混乱问题
用 var 声明变量时,会变量提升、无块级作用域,容易导致循环绑定错误或意外覆盖。比如给多个按钮加点击事件,用 var i 会全部弹出最后一个索引值。
-
let提供真正的块级作用域:只在{}内有效,for、if里声明的变量不会泄漏到外部 -
const声明后不可重新赋值(注意:对象/数组内容仍可修改,只是引用地址不能变) - 禁止重复声明:
let a = 1; let a = 2;直接报SyntaxError - 存在暂时性死区(TDZ):在声明前访问
let/const变量会抛ReferenceError,而不是返回undefined
箭头函数:this 绑定不再“失联”,但也不再有 arguments
传统函数中 this 指向调用时的上下文,常在回调里变成 window 或 undefined;箭头函数没有自己的 this,直接继承外层作用域的 this,这对事件处理和定时器特别友好。
- 写法更紧凑:
(a, b) => a + b、a => a * 2、() => 'hi' - 没有
arguments对象,要用剩余参数...args替代 - 不能用作构造函数:
new (() => {})报错 - 没有
prototype,不支持call/apply/bind改变 this(因为 this 已固化)
模板字符串与解构赋值:告别拼接和取值嵌套
以前拼字符串靠 + 和括号堆叠,取对象属性要写一串 obj.user.profile.name;现在这两件事都变得像读句子一样自然。
Android 4.0 是一次重要的平台发布版,为用户和应用程序开发者增加了大量的新特性。在下面我们将讨论的所有新特性和API中,因为它将 Android 3.x 版本中广泛使用的API和全息图像主题带给了小屏幕设备,因此我们说 Android 4.0 是一次重要的平台发布版。感兴趣的朋友可以过来看看
立即学习“Java免费学习笔记(深入)”;
- 模板字符串用反引号
`包裹,支持换行和表达式插值:`Hello ${name}, age: ${age + 1}` - 数组解构:
const [first, , third] = ['a', 'b', 'c'],支持默认值const [x = 10] = [] - 对象解构:
const { name, age } = user,还能重命名:const { name: nick } = user - 嵌套解构也安全:
const { profile: { city } } = user,但若profile为undefined会报错,需配合可选链?.(ES2020)才健壮
Promise 和模块化:异步和代码组织的基础设施
ES6 把 Promise 纳入语言标准,让异步流程从“回调地狱”转向链式可读结构;同时用 import/export 建立原生模块系统,替代了早期各种打包方案的手动模拟。
-
Promise有且仅有三种状态:pending→fulfilled或rejected,状态不可逆 -
import必须写在顶层作用域,不支持运行时动态路径(动态导入要用import()函数) -
export default每个文件只能有一个,export命名导出可多个,导入时名字必须匹配(除非用别名import { foo as bar } from './x') - 注意:浏览器原生支持
import需要,否则报错
真正难的不是记住每个特性怎么写,而是理解它们如何协同改变编码习惯——比如用 const + 解构 + 箭头函数写一个纯函数工具,比用 var + function + 字符串拼接更不容易出错,也更容易被其他开发者一眼看懂。这些不是“语法糖”,是约束带来的确定性。










