ES11(也称为 ECMAScript 2020)是 JavaScript 语言的最新版本,它带来了许多新特性和语言改进,其中一个新特性是将函数的所有参数变成可选的。
在 ES11 之前,我们必须为函数的每个参数提供一个值或一个默认值。但是在 ES11 中,我们可以将所有参数都变成可选的,这意味着我们可以调用函数而不必传递任何参数值。
为什么要将函数的所有参数变成可选的?
很多人可能会问,为什么需要将函数的所有参数都变成可选的?这是因为在某些情况下,我们可能需要根据不同的条件来确定要向函数传递哪些参数。此外,有时我们可能不想强制用户必须传递参数值。
如果我们在 ES11 之前想要实现这种行为,我们通常需要对参数进行丑陋的检查和处理,但现在在 ES11 中我们可以更轻松地实现它。
函数的所有参数都变成可选的如何工作?
要将函数的所有参数变成可选的,我们可以简单地在参数名称后面加上问号(?),这将告诉编译器该参数是可选的并且可以不提供值。
以下是一个示例函数:
function myFunction(a?, b?, c?) { console.log(a, b, c); }
在这个函数中,我们将所有参数 a、b 和 c 都标记为可选的。 这意味着我们可以在调用这个函数时,传递所有三个参数,传递其中的一些参数,或者完全不传递参数。
以下是一些示例调用:
myFunction(); // undefined undefined undefined myFunction(1); // 1 undefined undefined myFunction(1, 2); // 1 2 undefined myFunction(1, 2, 3); // 1 2 3
如何使用函数的可选参数?
对于可选参数,我们需要在函数内部对它们进行检查,确保它们已被定义并正常使用。
以下是一个示例函数,它使用可选参数并对它们进行检查:
-- -------------------- ---- ------- -------- --------------- --- --- - -- ------- - --- ------------ - - - ------------ - -- ------- - --- ------------ - - - ------------ - -- ------- - --- ------------ - - - ------------ - -------------- -- --- - --------------- -- - --------- ---------
在这个示例中,我们使用 typeof 检查每个可选参数是否已被定义。如果参数未定义,则为它们分配一个默认值。
结论
ES11 是 JavaScript 的最新版本,它带来了许多新特性和语言改进,其中一个重要的新特性是将函数的所有参数变成可选的。这使得 JavaScript 的函数变得更加灵活和易于使用。如果你想要学习更多关于 ES11 的知识,请查看官方文档。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6707b340d91dce0dc86b94f7