一尘不染

为 JavaScript 函数设置默认参数值

javascript

我希望 JavaScript 函数具有我设置默认值的可选参数,如果未定义该值(如果传递该值则忽略该值)。在 Ruby 中,你可以这样做:

def read_file(file, delete_after = false)
  # code
end

这在 JavaScript 中有效吗?

function read_file(file, delete_after = false) {
  // Code
}

阅读 139

收藏
2022-02-06

共1个答案

一尘不染

ES6/ES2015 开始,默认参数在语言规范中。

function read_file(file, delete_after = false) {
  // Code
}

只是工作。

参考:默认参数 - MDN

如果未传递任何值未定义,则默认函数参数允许使用默认值初始化形式参数。

您还可以通过解构模拟默认命名参数:

// the `= {}` below lets you call the function without any parameters
function myFor({ start = 5, end = 1, step = -1 } = {}) { // (A)
    // Use the variables `start`, `end` and `step` here
    ···
}

ES2015 之前

有很多方法,但这是我的首选方法——它可以让你传入任何你想要的东西,包括 false 或 null。( typeof null == "object")

function foo(a, b) {
  a = typeof a !== 'undefined' ? a : 42;
  b = typeof b !== 'undefined' ? b : 'default_b';
  ...
}
2022-02-06