ES2016 是 ECMAScript 的第七个版本,也称为 ECMAScript 2016。它在 ES2015 的基础上增加了一些新特性,包括 Array.prototype.includes()、指数操作符等。本文将详细介绍 ES2016 的新特性,并提供示例代码。
Array.prototype.includes()
在 ES2016 中,Array.prototype.includes() 是一个新的方法,它用于检查数组是否包含特定的元素。它与 Array.prototype.indexOf() 不同之处在于,Array.prototype.includes() 可以检查 NaN 和 undefined,而 Array.prototype.indexOf() 不行。
示例代码:
const arr = [1, 2, NaN, undefined]; console.log(arr.includes(1)); // true console.log(arr.includes(NaN)); // true console.log(arr.includes(undefined)); // true console.log(arr.includes(3)); // false
指数操作符
在 ES2016 中,指数操作符(**)是一个新的操作符,它用于计算一个数的幂。它与 Math.pow() 方法的作用相同,但更加简洁。
示例代码:
console.log(2 ** 3); // 8 console.log(4 ** 0.5); // 2 console.log(2 ** -2); // 0.25
函数参数默认值
在 ES2015 中,我们可以为函数参数设置默认值。在 ES2016 中,我们可以为函数的 rest 参数设置默认值。
示例代码:
function foo(a, b = 2, ...c) { console.log(a); // 1 console.log(b); // 2 console.log(c); // [3, 4, 5] } foo(1, undefined, 3, 4, 5);
Array.prototype.fill()
在 ES2015 中,我们可以使用 Array.prototype.map() 和 Array.prototype.filter() 方法来操作数组。在 ES2016 中,我们可以使用 Array.prototype.fill() 方法来填充数组。
示例代码:
const arr = new Array(5); console.log(arr.fill(0)); // [0, 0, 0, 0, 0] const arr2 = [1, 2, 3, 4, 5]; console.log(arr2.fill(0, 2, 4)); // [1, 2, 0, 0, 5]
总结
ES2016 引入了一些新的特性,包括 Array.prototype.includes()、指数操作符、函数参数默认值和 Array.prototype.fill()。这些特性可以让我们更加方便地操作数组和计算数值。在实际开发中,我们可以根据需要选择使用这些新特性,以提高代码的可读性和效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6514ad2d95b1f8cacdd0f41b