1.0 arguments 函数内置的形参
当我们不确定有多少个参数传递的时候,可以用 arguments 来获取。
在 JavaScript 中,arguments 实际上它是当前函数的一个内置对象。所有函数都内置了一个 arguments 对象,arguments 对象中存储了传递的所有实参。
arguments展示形式是一个伪数组,因此可以进行遍历。伪数组具有以下特点:
- 具有 length 属性
- 按索引方式储存数据
- 不具有数组的 push , pop 等方法
arguments 的使用 只有函数才有 arguments对象, 而且是每个函数都内置好了这个 arguments
function fn() {
console.log(arguments); // 里面储存了所有传递过来的实参 arguments = [1,2,3]
console.log(arguments.length); // 具有数组的 length 属性
console.log(arguments[2]);
// 我们可以按照数组的方式遍历 arguments
for (var i = 0; i < arguments.length; i++) {
console.log(arguments[i]);
}
}
fn(1, 2, 3);
fn(1, 2, 3, 4, 5, 6);
// 他是一个伪数组 并不是真正意义上的数组
// 1. 具有数组的 length 属性
// 2. 按照索引的方式进行存储
// 3. 它没有真正数组的一些方法 pop() push() 等。
2.0 函数案例
1. 利用函数求任意个数的最大值
function getSum() {
var max = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (max < arguments[i]) {
max = arguments[i]
}
}
return max;
}
console.log(getSum(1, 34, 24, 241, 421));
2. 利用函数翻转任意数组 reverse 翻转
function reverse(arr) {
var newArr = [];
for (var i = arr.length - 1; i >= 0; i--) {
newArr[newArr.length] = arr[i]
}
return newArr;
}
var re1 = reverse([4, 2, 8, 1, 4, 3]);
console.log(re1);
3. 利用函数封装对象,对数组排序(冒泡方法) sort 排序
function sort(arr) {
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr