javascript的征程四--函数

    xiaoxiao2021-03-25  262

    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中定义了两个名字相同的函数,则该名字只属于后定义的函数(只会执行后定义的函数的内容)

    转载请注明原文地址: https://ju.6miu.com/read-167.html

    最新回复(0)