JavaScript函数学习笔记[Web开发]


JavaScript函数

本文为学习笔记,参考Javascript.info,菜鸟等文章编写。

跳转连接

  1. JavaScript基础知识学习笔记[Web开发]
  2. JavaScript对象学习笔记[Web开发]
  3. JavaScript数据类型学习笔记[Web开发]
  4. JavaScript函数学习笔记[Web开发]

Rest 参数 …

在 JavaScript 中,无论函数是如何定义的,都可以在调用它时传入任意数量的参数。

这个函数不会因为传入过多的参数而报错。但是只有本应被接收的参数会被接收。

我们可以在函数定义中声明一个数组来收集参数。语法是这样的:...变量名,这将会声明一个数组并指定其名称,其中存有剩余的参数。这三个点的语义就是“收集剩余的参数并存进指定数组中”。

function sumAll(...args) { // 数组名为 args
  let sum = 0;

  for (let arg of args) sum += arg;

  return sum;
}

alert( sumAll(1, 2, 3) ); // 6

注意:Rest 参数必须放到参数列表的末尾

"arguments” 变量

有一个名为 arguments 的特殊类数组对象可以在函数中被访问,该对象以参数在参数列表中的索引作为键,存储所有参数。

在过去,JavaScript 中不支持 rest 参数语法,而使用 arguments 是获取函数所有参数的唯一方法。

function showName() {
  alert( arguments.length );
  alert( arguments[0] );
  alert( arguments[1] );

  // 它是可遍历的
  // for(let arg of arguments) alert(arg);
}

// 依次显示:2,Julius,Caesar
showName("Julius", "Caesar");

// 依次显示:1,Ilya,undefined(没有第二个参数)
showName("Ilya");

但缺点是,尽管 arguments 是一个类数组,也是可迭代对象,但它终究不是数组。它不支持数组方法,因此我们不能调用 arguments.map(...) 等方法。

注意,箭头函数没有 "arguments"。如果我们在箭头函数中访问 arguments,访问到的 arguments 并不属于箭头函数,而是属于箭头函数外部的“普通”函数。

Spread 语法

当在函数调用中使用 ...arr 时,它会把可迭代对象 arr “展开”到参数列表中。

let arr1 = [3, 5, 1];
alert( Math.max(...arr1) ); // 5(spread 语法把数组转换为参数列表)

// 多个可迭代对象
let arr2 = [8, 3, -8, 1];
alert( Math.max(...arr1, ...arr2) ); // 8

// 与常规值结合使用
alert( Math.max(1, ...arr1, 2, ...arr2, 25) ); // 25

可以使用 spread 语法来合并数组

let arr = [3, 5, 1];
let arr2 = [8, 9, 15];

let merged = [0, ...arr, 2, ...arr2];

alert(merged); // 0,3,5,1,2,8,9,15(0,然后是 arr,然后是 2,然后是 arr2)

可以用 spread 语法这样操作任何可迭代对象

// 将字符串转换为字符数组
let str = "Hello";

alert( [...str] ); // H,e,l,l,o
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值