Javascript 参数expect函数的默认值

Javascript 参数expect函数的默认值,javascript,optional-parameters,Javascript,Optional Parameters,我想为预期接收函数的函数参数添加默认值 请看以下示例: 我想将回调作为可选参数。由于函数有一个typeof函数,您可以执行一个简单的typeof检查。尽管JavaScript函数是一流的,所以您实际上不需要做太多更改 /** * @param {function} callback * @param {String} name */ function example(callback, name){ if (typeof a !== "function") { callba

我想为预期接收函数的函数参数添加默认值

请看以下示例:


我想将回调作为可选参数。

由于函数有一个typeof函数,您可以执行一个简单的typeof检查。尽管JavaScript函数是一流的,所以您实际上不需要做太多更改

/** 
* @param {function} callback
* @param {String} name
*/
function example(callback, name){
    if (typeof a !== "function") {
      callback = function(){ }; // replace this with your default function
    }
    console.log('Hello' + name + 'from parent function');
    callback();
}
有关更深入的答案,请参阅受保护的答案

编辑:作为旁白,最好将可选回调作为第二个参数。这样,您就不必显式地传递null来获得默认值

function example(name, callback) { ... }

example("hello"); // callback has value null

example("hello", function(){...}); // also valid

在JavaScript中,通常测试参数是null还是未定义,并提供默认值。你可以更简洁地使用| |:

使用| |更为宽松,因为它还会将JavaScript中错误的任何内容视为丢失,包括false、空字符串和零。所以它对于可选的布尔参数没有用处

在您的情况下,默认值是一个函数:

function example(opt_callback, name) {
  var callback = opt_callback || function() {};
  console.log('Hello' + name + 'from parent function');
  callback();
}
这里默认函数不提供任何内容,但是您可以在这里向默认函数添加一些默认行为

使用opt_u命名可选参数是and建议的一种做法。我认为这会使代码更具可读性,但也许我已经习惯了

除非有其他覆盖可读性原因,否则最好将可选参数放在参数列表的末尾,例如:

function example(name, opt_callback) {
  ...

这样,调用者只需一个参数就可以简洁地调用函数,例如“Mickey”,因为JavaScript中未指定参数的默认值是未定义的。

您看过了吗?我知道如何设置普通变量的默认值,但我不知道ES6中的函数现在可以设置默认参数值,@LionKing在JavaScript中,普通变量和函数之间没有区别。函数是对象,因此与任何其他值类似。JavaScript中一个好的本机无操作函数是no,它只是一个nothing函数。用您喜欢的任何函数替换它,一个更好的不做任何事情的函数就是函数{}
function example(opt_callback, name) {
  var callback = opt_callback || function() {};
  console.log('Hello' + name + 'from parent function');
  callback();
}
function example(name, opt_callback) {
  ...