ES6-11 总结一 (nrm,var,let,const,解构赋值) : https://www.jianshu.com/p/b04fbab076b3
ES6-11 总结二 (ES5和ES6数组的 遍历&扩展) : https://www.jianshu.com/p/a775c3311a0b
ES6-11 总结三(深浅拷贝,对象和函数的扩展) : https://www.jianshu.com/p/6dda93b18d9a
ES6-11 总结四 (es5和es6的类与继承,Symbol数据类型) : https://www.jianshu.com/p/e3c24c0db755
ES6-11 总结五 (set,Map,字符串&&正则&&数值的扩展) : https://www.jianshu.com/p/c1ca903f6573
ES6-11 总结六 (代理Proxy 反射Reflect):https://www.jianshu.com/p/4ff19ba5d219
1 安装nrm
npm install -g nrm
安装完毕之后查看,有没有安装成功 输入 nrm ls,,成功如下图
如果失败是下图,跳转https://blog.csdn.net/S_aitama/article/details/113706339解决
nrm常用命令
nrm text 测试时间
nrm use XXX 切换
nrm current 查看当前使用源头
nrm add XXXXXX 增加定制源头
nrm del XX删除源头
2 var let const
var
var a=1 : a是声明一个变量.,
b=1, b就不是变量,,相当于给window定义一个属性b
delete函数(delete b),,可以删除对象的属性,,不能删除变量,那么delete可以删除b,,但是不能删除a
但是又可以window.a和window.b打印出来,设计之初的问题
webpack打包以后,,window.a就没有了
let
1 不属于顶层对象window 例如let a=1 window.a 打印出来是 undefined
2 不允许重复声明
3 不存在变量提示
4 暂时性死区
5 块级作用域
解释4 暂时性死区 不能在let a前面,,使用a变量
解释5 块级作用域
如果是var ,,那么外循环就是3
块级作用域必须要有大括号
闭包解决循环打印定时器 i
因为定时器内部一直引用着i,,所有i不会被释放,,
let 解决循环打印定时器 i
原因是被babel成下图
const
1 不属于顶层对象window
2 不允许重复声明
3 不存在变量提示
4 暂时性死区
5 块级作用域
es5 定义一个常量,,不允许被改变 es6直接使用const
const定义的对象,,可以给对象的属性增删改查
如何让const对象也变成不可变的
Object.freeze(obj),,冻结对象,,,,此时obj被冻结 !!!但是只浅层冻结,,嵌套的对象,不会被冻结
3 结构赋值
1 按照一定模式,从数组和对象中提取值,对变量进行赋值
2 数组解构
3 对象解构
4 字符串解构
5 应用
实例
// 数组
let [a,b,c] = [1,2,3] // 123
let [a,b,[c,d]] = [1,2,[3,4]] //1234
let [a,b,[c]] = [1,2,[3,4]] //123
let [a,b,c] = [1,2,[3,4]] //12[3,4]
let [a,b,c] = [1,2,[3,4]] //12[3,4]undefined
let [a,b,c,d=5] = [1,2,[3,4]] //12[3,4]5
// 对象
let user = {
name : "刘",
age : 18
}
console.log(name,age)
let {name,age} =user // 刘 18
let {age,name} =user // 刘 18
let {age,name} =user // 刘 18
let {age : uAge, name:uName} =user
//使用就需要用uAge和uName,,而不是age和name
// 字符串
let str = "abcd"
//es5 用循环for,,来获取每一个下标值
let [a,b,c,d] = str
//字符串和数组结构一致
赋值应用
给函数参数结构
传参数组
传参对象
返回值
对JSON的解构