注:牛客职导前端课程笔记。
1.let const var
1.1var
全局变量挂载在window下。
变量提升:变量声明、初始化提升,赋值不提升。
可重复声明和修改,会发生覆盖。
1.2let
不挂载在window下。
创建提升,初始化不提升,造成暂时性死区。
不可重复声明,可重复赋值。
为块级作用域。
1.3const
不挂载在window下。
不提升,暂时性死区,声明时必须进行初始化。
且初始化后值不可再修改。
块级作用域。
2.解构符号
2.1作用
ES6允许按照 一定模式,从数组和对象中进行模式匹配提取值,对变量进行赋值,称为解构
2.2使用方法
基本、嵌套、忽略、不完全解构、剩余运算符、字符串、解构默认值、变换变量的值。
2.3应用
浅克隆与合并。
提取JSON数据。
函数参数的定义。
3.箭头函数
箭头函数出现的原因是为了解决在对象的方法的方法中想要访问该对象的属性,this却会指向window的情形。
3.1没有this,this是从外部获取的。
3.2不能进行new操作
因为箭头函数不具有this,不能用作构造器。
3.3没有arguments
箭头函数没有有自己的arguments对象,但可以访问外围函数的arguments对象。
3.4没有super
不能通过 super 来访问原型的属性
4.Map与WeakMap
4.1Map特点
Map的键和值可以是任何数据类型。
Map数据可迭代,object数据不可迭代。
4.2Map的常用属性
Map.set(key,value)添加键值对到映射中
Map.get(key)获取映射中某一个键的对应值
Map.delete(key)将某一键值对移除映射
Map.clear()清空映射中所有的键值对
Map.entries()返回一个以二元数组(键值对)作为元素的数组
Map.has(key)检查映射中是否包含某一键值对
Map.keys()返回当前映射中所有键作为元素的可迭代对象
Map.values()返回所有值作为可迭代对象
Map.size()映射中键值对的数量
4.3遍历Map数据
keys():返回键名的遍历器
values():返回键值的遍历器
entries():返回键值对的遍历器
forEach():使用回调函数遍历每个成员
4.4WeakMap
只接受对象作为键名,不接受其他类型的值作为键名。
键名是弱引用,如果键名销毁,该属性就销毁。
不可枚举,枚举影响其列表将会影响垃圾回收。