函数是所有编程语言的重要组成部分。
函数形参的默认值
在ES5中模拟默认参数。
<script>
function makeRequest(url,timeout,callback){
timeout = timeout || 2000;
callback = callback || function(){
}
// 函数其余部分
}
</script>
这个方法呢也有一定的缺陷,如果我们想给makeRequest函数的第二个形参timeout传值0时,会被认为是一个假值,并最终将timeout赋值为2000.在这种情况下,可以通过typeof
来检查参数类型。
即代码:
<script>
function makeRequest(url,timeout,callback){
timeout = (typeof timeout!=="undefined") ?timeout: 2000;
callback = (typeof callback !== "undefined") ? callback :function(){
}
// 函数其余部分
}
</script>
ES6中模拟默认参数
<script>
function makeRequest(url,timeout=2000,callback = function(){
}){
// 函数其余部分
}
</script>
url是必须的,其他两个为可选参数。
处理无命名参数
使用无命名参数可以合理的减少代码量
ES5中无命名参数
javaScript提供auguments对象来检查函数的所有参数,而不必定义每一个参数。