数组的解构:将数组中的每一项,得到一个解析
数组的结构语法:
等号左侧为声明项,等号右侧为赋值项;赋值规则为下标对应
当赋值项严格等于undefined时,会结构失败,声明项为undefined
默认值设置是惰性赋值:只有在解构失败时,才会运行默认值表达式
对象的解构:
等号左右侧均为对象解构,键名作用:使用来进行赋值项的匹配,真正被赋值的是等号左侧的键值部分;
对象解构的简写:
等号左侧的键名值变量名称一致时,可省略键值
如果解构项的变量已经声明,需用括号包裹解构表达式
对象解构是可以重复解构的
对象的扩展:
[key]中括号的方式可以将key作为变量区解析
.key key只作为键名,不会当作变量解析
删除属性: delete obj.att
ES6新增方法:
Object.is() 检测两个值是否全等(等同于全等符号 ===)
Object.assign() 对象的浅拷贝
扩展对象属性:
Object.assign(targetobj,optionobj)
作为扩展使用时,用optionObj补充targetObj,若两对象属性冲突,optionObj会覆盖targetObj的冲突属性
对象中的函数写法简写:
let obj = {
fn(){
},
}
属性简写:当键名和声明的变量名相同时,键值部分可以省略掉:
在js中浮点数的计算一般将其转为整数计算,最后再转为对应的浮点数
数组的扩展:
ES6新增可以起到遍历作用的方法:
forEach 单纯的遍历
map 作用:映射数组,将数组中的每一项进行升级
数组中每一项方法相同时会用到map
map语法规则:map方法中,接收一个回调函数,回调函数接收两个参数,分别是项和下标;回调函数的返回值会作为映射的新数组中的每一项push在新数组中
filter 作用:过滤数组中的元素
语法规则:回调函数中,return true的项会保留,false会过滤,返回新数组,对原数组无影响
every 返回布尔值 ,回调函数必须具备return语句,若在遍历时,每一次都返回true,则every方法返回true,任意一次返回false,则返回false
some
find 返回回调函数中第一次return true的项
findIndex 返回回调函数中第一次return true的下标
includes 判断某一项是否在数组中存在,返回布尔值
fill(item,start,end) 填充数组 item用来填充的项,start开始填充的位置下标,end结束填充的位置下标(不包含结束项)
copyWithin(target,start,end) 截取数组的内部某一项进行填充target替换原数组的项的下标,start截取用来替换项的开始下标,end截取用来替换项的结束下标(不包含结束下项)
Array.of() 将一组值转换为数组
Array.from() 将伪书组转换为真正的数组
flat(num) 拉平数组 num拉平层数
扩展运算符 “...” 将数组转数值,将数值转数组
字符串的扩展:
includes()
startsWith() 以某项开头
endsWith() 以某项结尾
padStart() 头部填充
padEnd() 尾部填充
repeat(n) 将原字符串重复多少次 n重复的次数
数字的扩展:
Number.parseInt()取整
Number.parseFloat()取浮点
Number.isInfinite()判断是否是无限大数字
函数的扩展:
函数的默认值设置
ES6中typeof多了一个返回值:symbol
新的数据类型symbol的特性:不会出现相同的symbol,独一无二
set数据结构:为数据集合
特点:在数据集合中不会出现重复项,没有下标
遍历set
map数据结构 => 哈希结构的对象(键名可以是任意数据类型)
遍历和set一样 for ... of