2009-09-19 34 views

回答

3

在JavaScript中,您可以調用函數而不管參數。

換句話說,它是完全合法的聲明這樣的功能:

function func(par1, par3) { 

    //do something 
    } 

,並調用它像這樣:

func(); 
+1

那麼,這是「是的,你可以設置一個默認值」,或「不,你不能設置默認值」? – Zed

+0

我說錯了,我的意思是,你可以添加參數,而不必定義它們。答案是肯定的,你可以。不像PHP。 – Tom

12

如果你想設置一個「默認」值你的論點,你可以這樣做:

function whatever(arg1) { 
    arg1 = arg1 || 'default value'; 
} 

請記住,'默認值'將被設置如果arg 1包含任何值,如nullundefined,0,false,NaN或者零長度字符串""的任何虛假值。

在你有 arguments對象中的JavaScript功能

此外,它包含傳遞給函數的參數數組類對象,所以你甚至可以聲明一個功能,無需輸入參數,當你調用它,你可以通過一些它:

function whatever() { 
    var arg1 = arguments[0]; 
} 

whatever('foo'); 

編輯:有關設置,只有當它是真正的定義,作爲@bobbymcr評論默認值,你可以做這樣的事情也:

function whatever(arg1) { 
    arg1 = arg1 === undefined ? 'default value' : arg1; 
} 
+0

讓我們一起工作:D –

+1

查看我的答案,瞭解如何僅在未確定的情況下設置默認值。 – bobbymcr

+0

你忘了麻煩'NaN' :) – kangax

0

在JS中默認參數不是必需的。對於$ ARG =「」的實現,你可以使用

function whatever(vars) { 
    vars = vars || 'default'; 
    /* your code */  
} 
2

我不認爲你可以直接這樣做,但是有辦法做到這一點。由於JavaScript允許你從一個函數調用省略參數,你可以檢查,如果一個參數是不確定的,並給它一個默認值,如果這樣:

function DoSomething(x, y, z) 
{ 
    // set default values... 

    if (typeof x == "undefined") 
    { 
     x = 5; 
    } 

    if (typeof y == "undefined") 
    { 
     y = "Hi"; 
    } 

    if (typeof z == "undefined") 
    { 
     z = 3.14; 
    } 

    // ... 
} 

你可以嘗試調用它通過以下方式看到的默認值獲得當參數丟失時分配:

DoSomething(); 
DoSomething(4); 
DoSomething(4, "X"); 
DoSomething(4, "X", 7.77); 
+0

對我而言,我更喜歡x === undefined; 爲了避免typeof :) –

相關問題