JavaScript 在其函数中是不是支持默认参数? [复制]

Posted

技术标签:

【中文标题】JavaScript 在其函数中是不是支持默认参数? [复制]【英文标题】:Is JavaScript support default parameters in its functions? [duplicate]JavaScript 在其函数中是否支持默认参数? [复制] 【发布时间】:2015-12-10 10:55:08 【问题描述】:

我想在 javascript 中设置默认参数,可以吗?

jm.toInt = function (num, base=10) 
    return parseInt(num,base);

【问题讨论】:

developer.mozilla.org/en/docs/Web/JavaScript/Reference/… ...查看浏览器支持... 【参考方案1】:

使用逻辑或,默认值是可能的。

jm.toInt = function (num, base) 
    return parseInt(num, base || 10);

【讨论】:

【参考方案2】:

当然有办法!

function myFunc(x,y)

   x = typeof x !== 'undefined' ? x : 1;
   y = typeof y !== 'undefined' ? y : 'default value of y';
   ...

在你的情况下

    jm.toInt = function(num, base)
       return parseInt(num, arguments.length > 1 ? base: 'default value' );
    

【讨论】:

【参考方案3】:

ES6 支持default parameters,但 ES5 不支持,你现在可以使用转译器(如babel)来使用 ES6

【讨论】:

【参考方案4】:

它是part of ES6,但到目前为止,not widely supported 所以你可以做类似的事情

jm.toInt = function(num, base) 
  return parseInt(num, arguments.length > 1 ? base : 10);

【讨论】:

使用arguments.length > 1 ?而不是简单的base ?有什么好处 @AlexandruSeverin none...在这种情况下,您可以使用上述任何格式....【参考方案5】:

使用typeof 验证参数是否存在(添加括号以便于阅读):

jm.toInt = function (num, base) 
    var _base = (typeof base === 'undefined') ? 10 : base
    return parseInt(num, _base);

【讨论】:

以上是关于JavaScript 在其函数中是不是支持默认参数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

函数的 JavaScript 默认参数

JavaScript ES6 - 函数扩展

JavaScript ES6 - 函数扩展

Javascript - Jquery - 函数参数

JavaScript Javascript函数中的默认参数

具有多个参数的函数中的 Javascript 默认参数