1.背景介绍

函数

ECMAscript中的函数使用function关键字来声明,后跟一组参数以及函数体,函数的基本语法如下所示:

 

2.知识剖析

函数的参数

1.函数不介意传递进来多少个参数。

2.参数不在乎是什么数据类型。

3.即使定义函数只接受两个参数,在调用的时候也未必一定要传递两个参数。

4.ECMAscript中的参数在内部是用一个数组来表示的,可以通过arguments对象来访问这个参数数组。

5.上面的所指的数组,也就是arguments并不是Array的实例,它其实是个伪数组。

可以通过访问arguments对象的length属性获知有多少个参数传递给了函数

参数的各个使用情况

1.函数能够接收任意参数并分别实现适当功能。

2.非严格模式下可以出先同名形参,而且只能访问最后出现的形参。

3.arguments对象可以与命名参数一起使用。

4.arguments对象中的值永远与对应命名参数的值保持同步。

5.arguments对象与命名参数的并不是访问相同的内存空间;它们的内存空间的独立的,但是它们的值会同步。

6.当调用函数的时候传入的实参比函数声明时指定的形参个数要少,剩下的形参都将设置为undeined。

3.常见问题

1.js中的函数没有重载

 

 

4.解决方案

1.没有重载解决方案:通过检查传入函数中参数的类型和数量并作出不同的反应,来模仿方法的重载

 

5.编码实战

 

6.扩展思考

如何理解arguments对象与命名参数的并不是访问相同的内存空间;它们的内存空间的独立的,但是它们的值会同步?