javascript - 带有默认参数 : Whether a parameter is passed in or not 的 ES6

标签 javascript ecmascript-6 default-parameters

function myfunc( value1, value2='defaultValue' ) {
  //some stuff
}

我怎么知道参数是否传入函数。我知道如果你不传递任何东西作为参数,默认值将被设置。我实际上想检查用户是否将任何东西作为第二个参数传递(即使它与默认值相同)并更改我的返回相应的值(value)。

我正在查看 ES6 docsthis SO answer , 不是我真正想要的。

谢谢,

最佳答案

arguments 仍然代表您发送的实际参数,因此 arguments.length 将为您提供该信息。

function myfunc( value1, value2='defaultValue' ) {
  console.log("value1", value1);
  console.log("value2", value2);
  console.log("length", arguments.length);
}
myfunc("foo");

在兼容的 JavaScript 引擎上,输出

value1 foo
value2 defaultValue
length 1
但是,

arguments 在箭头函数中不起作用,estus发布a good alternative that does .

关于javascript - 带有默认参数 : Whether a parameter is passed in or not 的 ES6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40789644/

相关文章:

javascript - CEFSharp RegisterExtension 不起作用

javascript - 这些代码的含义是什么? JavaScript

javascript - `+Infinity`中明确与 `ToLength`比较的目的

python - "Least Astonishment"和可变默认参数

python - "Least Astonishment"和可变默认参数

c++ - 取消引用具有默认参数的函数 - C++14 与 C++11

javascript - nodejs中的libuv线程如何利用多核cpu

javascript - 为什么jQuery调整宽高需要大括号?

javascript - 如何改变iframe内容跨域的样式?

javascript - 由于 ES2015 模板文字导致的 Webpack 错误 - "Unterminated string constant"