ES全称ECMAScript,ECMAScript是ECMA制定的标准化脚本语言。目前JavaScript使用的ECMAScript版本为ECMA-417。关于ECMA的最新资讯可以浏览 ECMA news。
ES5发布近5年后才被标准化,ES6+新特性让开发更高效
隐藏着黑暗力量的钥匙啊,在我面前显示你真正的力量!迷人又刷漆的大帅比 or 美丽又善良的xiao镁铝 ? 封印解除!!!durang~~
ES6之前,JS是没有块级作用域的,const与let填补了这方便的空白,const与let都是块级作用域。
1. var:variable的简写,可理解成变量的意思。
2. let:英文中表示“让”,也是一种声明方式。
3. const:英文表示常量,ES6中用来声明常量,常量你可以简单理解为不变的量,类似Java中的枚举。
|
|
对比以上两段代码,得出以下结论:var在ES6存在变量提升特性。
|
|
let声明块级作用域
|
|
var返回结果:
let返回结果
结论:let在防止程序数据污染。for循环let声明,减少var声明污染全局空间
|
有些变量是希望声明后在业务层就不再发生变化,这时用const声明
数组的解构赋值:
从前:
|
现在:
|
解构默认值:
|
对象解构赋值
|
PS:对象的解构与数组解构不同:
a. 数组的元素是按次序排列,变量的取值由位置决定;
b. 对象的属性没有次序,变量须与属性同名,才可取到正确的值。
圆括号的使用
|
解构之前定义变量,解构会出现问题。
解决方案 —— 外部加圆括号
|
字符串解构
|
对象扩展运算符(…)
|
rest运算符
|
|
|
|
|
=>
不只是关键字function的简写,箭头函数与包围它的代码共享同一个 this,
能帮你很好的解决this的指向问题。有经验的JavaScript开发者都熟悉诸如 var self = this;
或 var that = this
这种引用外围this的模式。但借助 =>
,就不需要这种模式了。 箭头函数的结构
=>箭头之前:
a. 一个空括号
|
对象赋值
|
对象Key值构建
|
自定义对象方法
|
Object.is() 、 == 和 ===
|
区别:==两边数据类型不同时自动先做类型转换,再进行比较,===为同值同类型相等,is()为严格相等
Object.assign( )合并对象
|
|
Set声明
|
Set和Array区别:Set不允许内部有重复的值
Set的相关操作
|
Json和Map:
|
|
Proxy就像一个钩子函数,然你在对象与各种操作对象的行为之间收集与请求相作的各种信息,并返回任何你想做的。
|
get、set、apply用法
get属性
get属性是在你得到某对象属性值时预处理的方法,接收三个参数
target:得到的目标值
key:目标的key值,相当于对象的属性
property:这个不太常用
set属性
set属性是值你要改变Proxy属性值时,进行的预先处理。接收四个参数。
target:目标值。
key:目标的Key值。
value:要改变的值。
receiver:改变前的原始值。
apply
在方法体是一个匿名函数时,调用内部的方法。
|
Promise是异步编程的一种解决方案,比传统的解决方案callback更加的优雅。
|
ES5中经常使用方法或者对象去模拟类的使用,虽然可以实现功能,但是代码并不优雅
|
ES5不支持原生的模块化,模块的功能主要由 export 和 import 组成。
|