1. 默认参数:
ES6 允许在函数声明时为参数设置默认值:
function greet(name = "Guest") {
console.log(`Hello, ${name}!`);
}
greet(); // 输出:Hello, Guest!
greet("John"); // 输出:Hello, John!
2. 不定参数(Rest 参数):
使用不定参数可以将多个参数收集到一个数组中:
function sum(...numbers) {
return numbers.reduce((acc, num) => acc + num, 0);
}
console.log(sum(1, 2, 3, 4)); // 输出:10
3. 展开运算符:
展开运算符可以将数组中的元素展开为单独的参数:
let numbers = [1, 2, 3, 4];
console.log(Math.max(...numbers)); // 输出:4
4. 箭头函数:
箭头函数是一种更简洁的函数定义方式,它没有自己的 this,而是继承外层作用域的 this:
// 传统函数
function add(a, b) {
return a + b;
}
// 箭头函数
const add = (a, b) => a + b;
5. 函数的 name 属性:
函数对象的 name 属性可以获取函数的名称:
function greet() {
console.log("Hello, World!");
}
console.log(greet.name); // 输出:greet
6. arguments 对象的不再随函数形参同步更新:
在 ES6 中,arguments 对象不再随函数形参同步更新,这样可以避免一些潜在的问题。
7. 尾调用优化:
ES6 规范中明确了对尾调用的优化支持,但并非所有 JavaScript 引擎都严格实现了这一特性。
8. Function.prototype.toString():
Function.prototype.toString() 方法现在返回精确的源代码表示,包括空格和注释。
function example() {
// this is
// an example
}
console.log(example.toString());
// 输出:
// function example() {
// // this is
// // an example
// }
这些 ES6 函数的扩展使得在编写和使用函数时更加方便和强大。
转载请注明出处:http://www.zyzy.cn/article/detail/4668/ES6