ES6学习

什么是ES6:

全称为ECMAScript 6.0,旨在解决ES5版本中的一些问题和不足,ES6引入了许多新的语法特性和API,如箭头函数、模块导入导出、类(Class)、Promise、let和const关键字、解构赋值、模板字符串、迭代器和生成器等。这些新特性使得JavaScript在编写复杂程序时更加简洁、高效和安全。

箭头函数的基本用法:

1.语法:箭头函数的语法是使用“=>”来定义函数,

 const func = (arg1, arg2) => { statements }

如果函数体只有一句话,且这句话是返回语句,那么可以省略大括号和return关键字,如:

const func = (arg1, arg2) => return result 

写成

 const func = (arg1, arg2) => result

2.箭头函数可以作为匿名函数使用,也可以赋值给变量,作为普通函数调用。

3.箭头函数没有自己的this、arguments、super或new.target。这些值都是从定义箭头函数时所在的上下文中继承而来的。也就是说,箭头函数会捕获其所在上下文的this值,而不是执行时的this值。这是箭头函数与普通函数的一个重要区别。

注意:

  1. 箭头函数不能用作构造函数,也就是说,不能使用new关键字来调用箭头函数,否则会报错。
  2. 箭头函数中没有arguments对象。如果需要使用类似arguments的对象,可以使用剩余参数语法(...args)来代替。
  3. 由于箭头函数没有自己的this,所以不能用箭头函数来定义对象的方法,否则会导致this指向错误。
  4. 在setTimeout等异步回调中使用箭头函数,可以确保回调中的this指向正确的上下文。

解构赋值

将数组或对象的属性值直接赋给变量

数组
const [first, second] = [1, 2];  
console.log(first); // 输出 1  
console.log(second); // 输出 2

对象
const person = { name: 'Alice', age: 25 };  
const { name, age } = person;  
console.log(name); // 输出 'Alice'  
console.log(age); // 输出 25

forEach( )方法遍历数组

forEach() 方法不会改变原数组,并且它没有返回值(或者说返回 undefined)。这意味着你不能通过 forEach() 直接获取遍历的结果。

const numbers = [1, 2, 3, 4, 5];  
  numbers.forEach(function(value, index, array) {  
  console.log(`Index: ${index}, Value: ${value}`);  
  // 在这个例子中,我们不需要使用数组本身作为参数,所以通常省略它。  
});

结果:

Index: 0, Value: 1  
Index: 1, Value: 2  
Index: 2, Value: 3  
Index: 3, Value: 4  
Index: 4, Value: 5

ES6简化:

const numbers = [1, 2, 3, 4, 5];  
  
numbers.forEach((value, index) => {  
  console.log(`Index: ${index}, Value: ${value}`);  
});
或
numbers.forEach((value, index) => console.log(`Index: ${index}, Value: ${value}`));

优点:

简洁易读forEach() 提供了更简洁、更声明式的语法来遍历数组。相比于传统的 for 循环,它减少了样板代码,使得代码更易于阅读和维护。

易于使用forEach() 方法内置在 JavaScript 的数组对象中,无需额外设置或初始化。只需提供一个回调函数,就可以轻松遍历数组。

自动索引管理forEach() 会自动处理索引,将每个元素的索引作为回调函数的第二个参数提供。这样,开发者无需手动管理索引,减少了出错的可能性。

无需担心边界条件:由于 forEach() 是由 JavaScript 引擎实现的,因此它会自动处理边界条件,如数组为空或遍历完成后不会执行额外的迭代。

易于理解forEach() 的语义非常明确,即“对数组中的每个元素执行某个操作”。这使得代码意图清晰,易于理解。

适用于并行处理:在现代 JavaScript 引擎中,forEach() 可能会进行某种形式的优化,使得遍历过程能够并行化,从而提高性能。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值