2013-01-12 124 views
4

如何檢查一個函數沒有收到參數?舉例來說,我希望能夠創造它接受像這樣多個輸入的自定義函數:Javascript檢查函數參數

clear();  // clear all 
clear('a'); // clear a 
clear('b'); // clear b 
clear('c'); // clear c 
clear('d'); // clear d 

回答

7

您既可以檢查一個說法是undefined

function clear(variable) { 
    if (variable === undefined) { ... } 
} 

或只需檢查的數量arguments

function clear(variable) { 
    if (arguments.length === 0) { ... } 
} 
+0

比另一個更有效率還是效率更高? – JaPerk14

+1

這兩者之間有細微的差別。 'clear(undefined)'將清除所有的第一個,但不是在第二個。 – zzzzBov

+0

@ JaPerk14在這裏同意* zzzzBov *。除非你需要*傳遞'undefined'作爲參數,否則第一個將會工作。否則兩個變種都是一樣的好。也許第二個更簡單一些。 – VisioN