今天与同事一起看了一个javscript定义函数问题,如何在定义一个函数里给参数一个默认值.
开始想当然地认为可能像php或python等语言中一样
可是,定义完之后一直在报错:缺少对象.经过查询才发现,javascript中的确不能这样定义,可以借肋于arguments 是实参数组,参考下例:
测试后,果然成了。看来万事都有其规律,不能想当然。在此记录下来,免得以后再犯错。
开始想当然地认为可能像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>
测试后,果然成了。看来万事都有其规律,不能想当然。在此记录下来,免得以后再犯错。