我希望JavaScript函数具有我设置为默认值的可选参数,如果没有定义值,则使用这些参数(如果传递了值,则忽略这些参数).在Ruby中,您可以这样做:

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

这在JavaScript中有效吗?

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

推荐答案

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

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

很管用.

参考:Default Parameters - MDN

如果传递no valueundefined,默认函数参数允许使用默认值初始化形式参数.

您还可以:

// 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
    ···
}

Pre ES2015,

有很多方法,但这是我首选的方法-它允许您传递任何您想要的东西,包括false或null.(typeof null == "object")

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

Javascript相关问答推荐

React redux状态未在React-Router库中呈现

如果没有尾随斜线,托管在收件箱中的React/Vite将无法工作

是什么原因导致此Angular 16电影应用程序中因类型错误而不存在属性?

如何在RTK上设置轮询,每24小时

如何在Angular中插入动态组件

将2D数组转换为图形

使用useEffect,axios和useParams进行react测试

实现JS代码更改CSS元素

提交链接到AJAX数据结果的表单

如何发送从REST Api收到的PNG数据响应

为什么客户端没有收到来自服务器的响应消息?

如何将zoom 变换应用到我的d3力有向图?

Reaction组件在本应被设置隐藏时仍显示

JavaScript不重定向配置的PATH

搜索功能不是在分页的每一页上进行搜索

为列表中的项目设置动画

如何使用画布在另一个内部绘制一个较小但相同的形状,同时保持恒定的边界厚度?

为什么我看到的是回复,而不是我的文档?

如何在Firebase中读取对象的特定字段?

使用Java脚本替换字符串中的小文本格式hashtag