函数属性和arguments
◼ 我们知道JavaScript中函数也是一个对象,那么对象中就可以有属性和方法。
◼ 属性name:一个函数的名词我们可以通过name来访问;
◼ 属性length:属性length用于返回函数参数的个数;
注意:rest参数是不参与参数的个数的;
认识arguments
◼ arguments 是一个 对应于传递给函数的参数的类数组(array-like)对象。
◼ array-like意味着它不是一个数组类型,而是一个对象类型:
但是它却拥有数组的一些特性,比如说length,比如可以通过index索引来访问;
但是它却没有数组的一些方法,比如filter、map等;
console.log(arguments)
console.log(arguments[0])
console.log(arguments[1])
for (var arg of arguments) {
console.log(arg)
}
arguments转Array
◼ 在开发中,我们经常需要将arguments转成Array,以便使用数组的一些特性。
常见的转化方式如下
◼ 转化方式一:
遍历arguments,添加到一个新数组中;
将arguments转为数组方式一:
◼ 转化方式二:较难理解(有点绕),了解即可
调用数组slice函数的call方法;
var newArgs = [].slice.apply(arguments)
console.log(newArgs)
◼ 转化方式三:ES6中的两个方法
Array.from
[…arguments]
var newArguments = Array.from(arguments)
console.log(newArguments)
var newArgs2 = [...arguments]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?