回答
不這樣做
function byMonth(export){
export = export || 0;
alert(export);
}
編輯:
以前的版本有一個沉默的錯誤,我要離開它,就像什麼不要做一個例子。
問題是,假設您將參數false
傳遞給函數,它將採用默認值,儘管您實際使用參數調用它。
所有這些其他參數將被忽略,默認將使用
- 數量爲零
0
- 空字符串(因爲falsy JavaScript的概念)
""
NaN
false
null
- 和(顯然)
undefined
一個更安全的方式來檢查參數的存在是:
function byMonth(export){
if(export === undefined) export = 0;
}
編輯2:
前面函數不是100 %安全,因爲某人(一個白癡)可能會定義undefined
使功能出乎意料地行爲。這是最終的,適用任何地方,防彈版本:
function byMonth(export){
var undefined;
if(export === undefined) export = 0;
}
這實際上比@ Nick的回答更好,因爲你正在使用'var'。 – 2010-09-03 17:16:36
@Jacob - 它被定義爲一個參數:) – 2010-09-03 17:16:56
@Nick,是的,我想我害怕全局變量覆蓋。 – 2010-09-03 17:17:50
您可以設置默認的裏面,像這樣:
function byMonth(export) {
export = export || 0;
//your code
}
我6年多晚,但現在ES6,還有另一種解決方案。巴勃羅·費爾南德斯說,你可以設置undefined
到一個值,你應該檢查是這樣的:
function byMonth(export){
var undefined;
if(export === undefined) export = 0;
}
好了,現在你可以這樣做:
function byMonth(export){
if(export === void 0) export = 0;
}
void 0
始終計算爲「真正的」 undefined
。
- 1. Javascript變量函數
- 2. javascript函數變量
- 3. 變量JavaScript函數
- 4. 變量值未由JavaScript設置函數
- 5. 在javascript函數中設置變量
- 6. javascript onclick設置爲變量函數名?
- 7. Javascript變量,增量函數?
- 8. Javascript函數多值變量
- 9. 通C#變量javascript函數
- 10. Javascript函數變量問題
- 11. JavaScript函數返回變量
- 12. JavaScript:變量中的函數?
- 13. JavaScript和函數變量
- 14. JavaScript從函數中變量
- 15. 變量函數名的Javascript
- 16. 變量中的Javascript函數
- 17. javascript變量和函數
- 18. JavaScript函數傳遞變量
- 19. 的Javascript - 分配函數變量預期不起作用
- 20. 錯誤:預期的函數或變量
- 21. 將javascript變量插入javascript函數
- 22. Javascript函數,改變變量的值
- 23. 增量JavaScript變量函數的onclick
- 24. 配置vim以顯示PHP函數的預期變量
- 25. 重置svyglm函數中預測變量的基線水平
- 26. 如何使用JavaScript變量設置函數設置CSS寬度?
- 27. JavaScript變量PHP函數作爲參數
- 28. 使用Javascript將函數數據設置爲變量
- 29. 使用JavaScript函數內的JavaScript變量調用Java函數
- 30. JavaScript函數參數變量或全局變量
不要使用'export'作爲標識符,因爲它是未來的保留字*,當這些關鍵字用作標識符時,某些實現會拋出'SyntaxError',Safari實現就是一個很好的例子。 – CMS 2010-09-03 17:37:28