Javascript函数变量预设

azz*_*z0r 5 javascript function

我有一个函数,我想传递一个参数,但我希望它默认为0.

是否有可能与PHP类似,例如:

function byMonth(export=0) {
Run Code Online (Sandbox Code Playgroud)

非常感谢

Pab*_*dez 11

不要这样做

function byMonth(export){
  export = export || 0;
  alert(export);
}
Run Code Online (Sandbox Code Playgroud)

编辑:

以前的版本有一个无声的bug,我只是作为一个不做的例子.

问题是,假设您传递函数参数false,它将采用默认值,尽管您实际上使用参数调用它.

所有这些其他参数将被忽略,默认将被使用(因为favascript的javascript概念)

  • 数字为零 0
  • 一个空字符串 ""
  • NaN
  • false
  • null
  • 和(显然) undefined

检查参数是否存在的更安全的方法是:

  function byMonth(export){
      if(export === undefined) export = 0;
  }
Run Code Online (Sandbox Code Playgroud)

编辑2:

之前的功能不是100%安全的,因为有人(可能是一个白痴)可以定义undefined使功能出乎意料地行为.这是一个最终的,适用于任何地方的防弹版本:

function byMonth(export){
  var undefined;
  if(export === undefined) export = 0;
}
Run Code Online (Sandbox Code Playgroud)

  • @Jacob - 它被定义为参数:) (2认同)