js中的arguments对象

《JavaScript高级程序设计》读书笔记

js中函数的参数与别的语言的参数有些不同。js中的函数不介意传递进来的参数有几个,也不介意是什么数据类型。
也就是说,即便是定义的函数只接收两个参数,但是在调用这个函数的时候,并不一定传递两个参数,可以传递一个,三个或者不传参数。解析器也不会报错。
之所以会这样,是因为,js中的参数在内部是用一个数组来表示的。函数接收到的始终都是这个数组,而不关心数组内包含了哪些参数。
如果这个数组中不包含任何元素,无所谓;如果包含多个元素,也没有问题。
实际上,在函数体内可以通过arguments对象来访问这个参数数组。并获取每个参数。
请看下面的这个函数,这个函数有两个参数,分别是namesay:

function sayHello(name, say) {
    console.log(`${name}说${say}`)
}

上面的函数和下面的函数功能是一样的:

function sayHello() {
    console.log(`${arguments[0]}说${arguments[1]}`)
}

上面的两个函数对比说明:js中命名的参数提供了便利,但不是必须的。


完。

你可能感兴趣的:(js中的arguments对象)