在函数中设置默认变量值

Kar*_*non 10 javascript jquery

我正在做很多前端开发,我发现自己做了很多这样的事情:

function doSomething(arg){
    var int = arg ? arg : 400
    //some code after
}
Run Code Online (Sandbox Code Playgroud)

所以我想知道这是否是一种方法,但更短更清洁(我不喜欢arg在同一行看到两次).

我见过有些人做过这样的事情:

var int = arg || 400;
Run Code Online (Sandbox Code Playgroud)

因为我不是为了至极知道我需要放置的价值,我试过arg || 400400 || arg,但它会始终设置int在右边的值,即使arg是不确定的.

我知道在PHP中你可以做一些类似于function doSomething(arg = 400)设置默认值的东西,在jQuery插件中你可以使用.extend()默认属性,但是单个变量有一个简短的方法吗?或者我必须继续使用我的方式?

感谢您的帮助,如果您能给我资源,我们将不胜感激.

Den*_*ret 15

真的没有比干净更短的方式了

var int = arg || 400;
Run Code Online (Sandbox Code Playgroud)

事实上,正确的方法会更长,如果你想允许arg作为传递0,false或者"":

var int = arg===undefined ? 400 : arg;
Run Code Online (Sandbox Code Playgroud)

一个轻微而频繁的改进是不要声明一个新变量但使用原始变量:

if (arg===undefined) arg=400;
Run Code Online (Sandbox Code Playgroud)

  • @ColinDeClue只是为了安全对抗什么?你自己重新定义了'undefined`?这在ES5中是不可能的.传递'null`? (2认同)