# es6
> 关于es6的特性建议查看阮一峰老师的[《es6入门》](http://es6.ruanyifeng.com/)
## 新增加的特性
- 模板字符串(为JavaScript提供了简单的字符串插值功能)
- 箭头函数(操作符左边为输入的参数,而右边则是进行的操作以及返回的值Inputs=>outputs。)
- for-of(用来遍历数据)
- arguments对象可被不定参数和默认参数完美代替。
- ES6将promise对象纳入规范,提供了原生的Promise对象。
- 增加了let和const命令,用来声明变量。增加了块级作用域。let命令实际上就增加了块级作用域。
- ES6规定,var命令和function命令声明的全局变量,属于全局对象的属性;let命令、const命令、class命令声明的全局变量,不属于全局对象的属性;
- 引入module模块的概念
- Default Parameters(默认参数) in ES6
- Multi-line Strings (多行字符串)in ES6
- Destructuring Assignment (解构赋值)in ES6
- Enhanced Object Literals (增强的对象文本)in ES6
- Block-Scoped Constructs Let and Const(块作用域构造Let and Const)
- Classes(类) in ES6
## => 函数
- 没有自己的this,而是使用当前上下文的this
- 通过 call() 或 apply() 方法调用一个函数时,只是传入了参数而已,对 this 并没有什么影响。
- 箭头函数不绑定Arguments 对象
- 箭头函数不能用作构造器,和 new一起用会抛出错误。
- 箭头函数没有prototype属性。
- yield 关键字通常不能在箭头函数中使用(除非是嵌套在允许使用的函数内)。因此,箭头函数不能用作生成器。
- params => {object:literal}这种简单的语法返回对象字面量出错。
## var/let/const
### var
函数作用域
### let
- 块级作用域
- 不能重定义
- let声明的全局变量不是全局对象的属性
- 形如for (let x...)的循环在每次迭代时都为x创建新的绑定
### const
- const声明的变量与let声明的变量类似,它们的不同之处在于,const声明的变量只可以在声明时赋值,
- Houser的个人Wiki
- Javascript
- 语言基础
- 变量
- 操作符整理
- new
- Ajax
- 事件
- 遍历
- 字符串转数字方法
- 原型链
- apply/call/bind
- 异步编程
- 模块化
- 继承的方式
- 对象的创建方式
- 内存泄漏
- js延迟加载
- 数据类型
- typeof
- 垃圾回收
- 作用域
- 闭包
- this
- es6
- 代码片段
- 对象拷贝
- Node.js
- 模块
- 库&框架
- Jquery
- 优点
- 组件库
- React
- React原理
- Key的作用
- JSX
- Redux
- Mobx
- 生命周期
- Typescript
- HTML&CSS
- viewport meta
- websocket
- webwork
- web GL
- html全局属性
- iframe
- 页面间通讯
- SVG
- 盒模型
- 输入url到显示的过程
- BFC(块格式化上下文)
- 动画
- CSS 秘密花园
- 前端
- webpack
- 后端
- nginx
- springboot
- 网络
- 跨域
- 网络攻击
- TCP
- Https
- Http状态码
- 缓存策略
- Http2
- 数据结构&算法
- 常用数据结构
- 开发&编码
- Git
- 分支策略
- 基本操作
- VSCode
- 工具
- App开发
- ReactNative
- 项目&业务
- Docker
- 协作工具
- 前端性能优化
- 登录授权
- 软件工程
- 渐进增强和优雅降级
- 计算机基础
- 设计模式
- 单例模式
- 工厂模式
- 发布订阅模式
- 适配器模式
- 代理模式
- 外观模式
- 命令模式
- 桥接模式
- 模板模式
- 职责链模式
- 正则