我希望 JavaScript 函数具有我设置默认值的可选参数,如果未定义该值(如果传递该值则忽略该值)。在 Ruby 中,你可以这样做:
def read_file(file, delete_after = false) # code end
这在 JavaScript 中有效吗?
function read_file(file, delete_after = false) { // Code }
从ES6/ES2015 开始,默认参数在语言规范中。
只是工作。
参考:默认参数 - 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")
typeof null == "object"
function foo(a, b) { a = typeof a !== 'undefined' ? a : 42; b = typeof b !== 'undefined' ? b : 'default_b'; ... }