2
A
回答
3
在JavaScript中,您可以調用函數而不管參數。
換句話說,它是完全合法的聲明這樣的功能:
function func(par1, par3) {
//do something
}
,並調用它像這樣:
func();
12
如果你想設置一個「默認」值你的論點,你可以這樣做:
function whatever(arg1) {
arg1 = arg1 || 'default value';
}
請記住,'默認值'將被設置如果arg 1包含任何值,如null
,undefined
,0
,false
,NaN
或者零長度字符串""
的任何虛假值。
arguments
對象中的JavaScript功能
此外,它包含傳遞給函數的參數數組類對象,所以你甚至可以聲明一個功能,無需輸入參數,當你調用它,你可以通過一些它:
function whatever() {
var arg1 = arguments[0];
}
whatever('foo');
編輯:有關設置,只有當它是真正的定義,作爲@bobbymcr評論默認值,你可以做這樣的事情也:
function whatever(arg1) {
arg1 = arg1 === undefined ? 'default value' : arg1;
}
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 :) –
相關問題
- 1. JavaScript函數參數聲明
- 2. 你可以在函數中通過cfscript做可選參數嗎?
- 3. JS函數聲明:在參數聲明
- 4. 你可以在VBScript中聲明一個常量數組嗎?
- 5. 我們可以在函數內部聲明函數嗎?
- 6. 你可以在AS3函數中有「ByRef」參數嗎?
- 7. 在ColdFusion 8中,你可以使用cfscript聲明一個函數爲private嗎?
- 8. 你可以在JavaScript中有多個可選參數嗎?
- 9. 我可以在Python中的函數中聲明一個類嗎?
- 10. 你可以結合CSS聲明嗎?
- 11. JavaScript - 傳遞更多參數比函數聲明不好嗎?
- 12. 當你在JavaScript中的函數聲明中聲明.autoCurry()會發生什麼?
- 13. 你可以調用一個以前沒有聲明過的函數嗎?
- 14. 我可以在函數聲明中傳遞變量嗎?
- 15. 我可以在函數聲明中省略花括號嗎?
- 16. 聲明函數在JavaScript
- 17. 函數參數聲明
- 18. 你可以將數組插入函數參數嗎?
- 19. 你可以在javascript中編寫匿名函數嗎?「function(){}」?
- 20. 你可以在JavaScript中編寫嵌套函數嗎?
- 21. 你可以在Dart的函數中添加屬性嗎?
- 22. 可以在JavaScript中命名函數參數窗口嗎?
- 23. Javascript函數參數可以省略在一組中間嗎?
- 24. 我可以在javascript的函數參數中使用對象嗎?
- 25. 你可以將一個DataTable聲明爲一個數組嗎?
- 26. 你經常聲明你的函數是const嗎?
- 27. 在php echo聲明中調用javascript函數的參數
- 28. 參數可以在JavaScript中換行嗎?
- 29. 如何在Swift中聲明屬性名稱的函數參數
- 30. 我們可以聲明一個沒有參數的朋友函數嗎?
那麼,這是「是的,你可以設置一個默認值」,或「不,你不能設置默認值」? – Zed
我說錯了,我的意思是,你可以添加參數,而不必定義它們。答案是肯定的,你可以。不像PHP。 – Tom