跳到主要内容

简述ES6对Function函数类型做的常用升级优化 ? ( 重要 )

参考答案:

ES6(ECMAScript 2015)对Function函数类型做了一系列的升级和优化,主要包括以下几个方面:

  1. 默认参数(Default Parameters):在ES6中,函数参数可以有默认值。这意味着如果在调用函数时没有提供某个参数,那么该参数将使用其默认值。这可以使得代码更简洁,更易于阅读和理解。
function greet(name = 'World') {
  console.log(`Hello, ${name}!`);
}

greet();  // 输出 "Hello, World!"
greet('Alice');  // 输出 "Hello, Alice!"
  1. 剩余参数(Rest Parameters):ES6引入了剩余参数语法,允许函数接收任意数量的参数。这对于处理不确定数量参数的情况非常有用。
function sum(...args) {
  return args.reduce((a, b) => a + b, 0);
}

sum(1, 2, 3);  // 输出 6
sum(4, 5, 6, 7);  // 输出 22
  1. 箭头函数(Arrow Functions):箭头函数提供了一种更简洁的函数语法,同时它们还解决了this的上下文问题。箭头函数没有自己的this,它们继承自包围它们的函数或全局作用域的this
const arr = [1, 2, 3];
arr.forEach(v => console.log(v));  // 输出 1, 2, 3

const obj = {
  value: 10,
  increment: function() {
    const self = this;  // 需要手动绑定this
    setTimeout(function() {
      console.log(self.value++);  // 输出 11
    }, 1000);
  }
};
obj.increment();

const obj2 = {
  value: 20,
  increment: () => {
    setTimeout(() => {
      console.log(this.value++);  // 输出 21
    }, 1000);
  }
};
obj2.increment();
  1. 函数声明和函数表达式的简写:ES6允许我们省略函数声明和函数表达式的function关键字。
const greet = name => `Hello, ${name}!`;  // 函数表达式简写

greet('Alice');  // 输出 "Hello, Alice!"

const sum = (a, b) => a + b;  // 函数声明简写

sum(1, 2);  // 输出 3
  1. 类(Class):虽然类在JavaScript中一直存在(通过原型继承实现),但ES6提供了一种更接近于传统面向对象编程的语法。类使得代码更易于理解和维护。
class Greeter {
  constructor(name) {
    this.name = name;
  }

  greet() {
    console.log(`Hello, ${this.name}!`);
  }
}

const greeter = new Greeter('Alice');
greeter.greet();  // 输出 "Hello, Alice!"

这些升级和优化使得JavaScript的函数更加灵活、强大和易于使用。