javascript的征程四--函数

来源:互联网 发布:监控远程软件 编辑:程序博客网 时间:2024/06/04 19:53

ECMAScript 函数的参数与大多数其他语言中函数的参数有所不同。ECMAScript 函数不介意传递进来多少个参数,也不在乎传进来参数是什么数据类型。也就是说,即便你定义的函数只接收两个参数,在调用这个函数时也未必一定要传递两个参数。可以传递一个、三个甚至不传递参数,之所以会这样,原因是 ECMAScript 中的参数在内部是用一个数组来表示的。函数接收到的始终都是这个数组,而不关心数组中包含哪些参数(如果有参数的话)。如果这个数组中不包含任何元素,无所谓;如果包含多个元素,也没有问题。实际上,在函数体内(要执行的代码)可以通过 arguments 对象(其实是一个数组)来访问这个参数数组,从而获取传递给函数的每一个参数。

例如:

function ert(name,sex){alert("我叫"+arguments[0] +",我的性别是"+arguments[1])}ert("张帅锋","男")//在这里arguments[0]就带表第一个参数的值,同理arguments[1]

可以在一定程度上认为arguments就是你传递的那个参数数组对象。当不知道要传递多上个参数的时候,可以通过arguments.length来进行判断;记住所有的参数传递的都是值,而不是通过引用传递参数

对于的函数中经常要用到的return语句要注意的事项:

一个函数可以有return也可以不return,但是一旦return了无论你返回的有没有值,return后面的代码永远不会执行,如果返回的有值,那么这个函数执行的结果就是一个返回值,没有值,当打印这个函数的时候结果是undefined

函数的重载:

javascript函数没有重载,因为无论在调用的时候你传递几个参数,参数的类型又是什么,其实在真正执行的时候这些参数都是在一个数组里面的(都是一样的,就是一个数组),都接收的是一个数组,也就无从谈起重载了(传统意义上的函数的重载是接受的参数的类型和数量不相同导致的)

注意:如果在 ECMAScript中定义了两个名字相同的函数,则该名字只属于后定义的函数(只会执行后定义的函数的内容)

0 0