今天與同事一起看了一個javscript定義函數問題,如何在定義一個函數里給參數一個默認值.
開始想當然地認為可能像php或python等語言中一樣
js 代碼
- :function test(a,b="er"){
- alert(a + b );
- }
- 調用:
- test(a)
-
- test(a,b)
可是,定義完之后一直在報錯:缺少對象.經過查詢才發現,javascript中的確不能這樣定義,可以借肋于arguments 是實參數組,參考下例:
js 代碼
- <script>
- function Test(a){
- var b=arguments[1]?arguments[1]:50
- return a+':'+b
- }
- alert(Test(5))
- alert(Test(5,9))
- </script>
測試后,果然成了。看來萬事都有其規律,不能想當然。在此記錄下來,免得以后再犯錯。