玩命加载中 . . .

ES新特性1


字符串模板

使用反引号的特殊字符串,用法较一般字符串更加方便、功能强大,支持变量替换、换行等等。

解构赋值

对象的解构赋值

  1. 一般语法格式
  2. let 关键字声明的变量的解构赋值需要提供括号
  3. 解构赋值可以嵌套
  4. 解构赋值中可以实现变量名的替换
  5. 回退机制

数组的解构赋值

  1. 一般语法格式
  2. 缺省元素要空出
  3. …others表示剩余全部
  4. 数组解构可以方便地用于变量值的交换

四种循环遍历

  • 普通的for循环
  • 数组的forEach
  • 对象的for…in
  • 数组的for…of
let fruits = ['apple', 'mongo', 'peach', 'banana', 'strawberry']

console.log('普通for循环');
for(let i=0; i<fruits.length; i++) {
    console.log(fruits[i]);
}

// forEach循环是遍历每一个元素,但是不支持break、continue
console.log('forEach循环');
fruits.forEach(fruit => {
    console.log(fruit);
})

// for in 循环获取的是数组的属性,并且是遍历数组对象的可枚举属性,通过下标获取可枚举属性值
console.log('for in循环');
for(let index in fruits) {
    console.log(fruits[index]);
}

// for of循环可以获取每一个元素,并且支持break、continue
console.log('for of循环');
for(let fruit of fruits) {
    console.log(fruit);
}

for…of循环

for…of循环在可迭代对象上创建迭代循环,其中可迭代对象包括:
Array、String、Map(键值对)、Set(集合)等。

使用
for ele of obj.entries(),
则ele是数组类型(类似map),第一个值为下标,第二个值为元素。

const celes = ['徐阶', '陆炳', '高拱']

for(let ele of celes) {
    console.log(ele);
}
/*
徐阶
陆炳
高拱
*/

for(let ele of celes.entries()) {
    console.log(ele);
}
/*
[ 0, '徐阶' ]
[ 1, '陆炳' ]
[ 2, '高拱' ]
*/

在后一种写法中,我们甚至可以使用解构赋值获取元素和其下标:

for(let [index, person] of celes.entries()) {
    console.log(index, person);
}

剩余参数

常用:

  • 接收函数参数作为数组
  • 数组的解构赋值

// 此处的...numbers就是剩余参数写法
function sum(...numbers) {
    // Array.reduce(callback(accumulator, currentValue[, index, array])[, initialValue])
    // accumulator: 累计器,上一次调用callback回调返回的累积值
    // currentValue: 数组中正在处理的元素
    // index: 数组中正在处理的元素的索引
    // array: 正在处理的数组
    // initialValue: 第一次调用callback回调时的第一个参数值,默认为array数组的第一个元素
    return numbers.reduce((prev, curr) => prev + curr)
}

console.log(sum(1, 2, 3, 4, 5));

文章作者: 鹿卿
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 鹿卿 !
评论
  目录