一个拥有 length 属性和若干索引属性的对象就可以被称为类数组对象,类数组对象和数组类似,但是不能调用数组的方法。常见的类数组对象有 arguments 和 DOM 方法的返回结果,还有一个函数也可以被看作是类数组对象,因为它含有 length 属性值,代表可接收的参数个数。

在函数的形参中,还有剩余参数这个东西,那如果具有剩余参数,会是怎么算呢?

function fn1(name, ...args) {}

console.log(fn1.length) // 1

可以看出,剩余参数是不算进length的计算之中的。

所以,123['toString'].length + 123 = ?的答案是124

总结

length 是函数对象的一个属性值,指该函数有多少个必须要传入的参数,即形参的个数。形参的数量不包括剩余参数个数,仅包括第一个具有默认值之前的参数个数

function的length,就是第一个具有默认值之前的参数个数。的更多相关文章

  1. 函数的默认值与动态参数arguments的总结

    在js函数与作用域,了解函数基本概念中,我们发现当函数的实参有一个没有上传的时候,对应的形参time展示的值就是undefined,如下代码所示: <!DOCTYPE html> < ...

  2. ES6—带默认值的函数参数及其作用域

    在学习ES6函数一章时,发现了一个有意思的现象,原文描述如下: 这段话主要state了3个事实: ①函数参数有默认值时,会在声明初始化阶段形成一个单独的作用域 ②这个作用域在初始化结束后消失 ③没默认 ...

  3. C#语法糖之第二篇: 参数默认值和命名参数 对象初始化器与集合初始化器

    今天继续写上一篇文章C#4.0语法糖之第二篇,在开始今天的文章之前感谢各位园友的支持,通过昨天写的文章,今天有很多园友们也提出了文章中的一些不足,再次感谢这些关心我的园友,在以后些文章的过程中不断的完 ...

  4. es6(三):es6中函数的扩展(参数默认值、rest参数、箭头函数)

    1.函数可以设置参数默认值 function test1(x,y=1){ console.log(x,y) } test1(10)//10 1 2.rest参数:形式为...变量名 function ...

  5. ES6参数默认值,剩余参数及展开数组

    一.函数的参数默认值 在ES6之前,想要给参数设置默认值得话,只能在函数体内部加判断设置,比如如果传递参数为undefined时为true, 否则为false,如下图example1,ES6出现语法可 ...

  6. 【python】函数参数关键字索引、参数指定默认值、搜集参数

  7. js定义参数默认值

    javascript可以用arguments定义参数组.   一.简单的定义参数默认值 function test1(a,b){ //如果有参数一,则返回参数一,如果没有返回默认值"这是参数 ...

  8. ES6笔记之参数默认值(译)

    原文链接:http://dmitrysoshnikov.com/ 原文作者:Dmitry Soshnikov 译者做了少量补充.这样的的文字是译者加的,可以选择忽略. 作者微博:@Bosn 在这个简短 ...

  9. ES6函数参数默认值作用域的模拟原理实现与个人的一些推测

    一.函数参数默认值中模糊的独立作用域 我在ES6入门学习函数拓展这一篇博客中有记录,当函数的参数使用默认值时,参数会在初始化过程中产生一个独立的作用域,初始化完成作用域会消失:如果不使用参数默认值,不 ...

  10. props default 数组/对象的默认值应当由一个工厂函数返回

    export default {props: { slides:{ type:Array, default:[] } },这是我的代码 报错是Invalid default value for pro ...

随机推荐

  1. Windows 11 内核新调试器「GitHub 热点速览 v.23.01」

    本周热点趋势榜虽然新项目不多,但是还是有几个不错值得收藏的工具项目,比如用来做文本转语音的 tortoise-tts 能生成更加贴近真实人声的语音,让 Golang 并发更出色的 conc,以及通过 ...

  2. 如何在mac电脑上配置命令行工具

    Hi,欢迎大家在有空的时候做客[江涛学编程],这里是2023年的第7篇原创文章,今天我们来聊一聊如何在mac电脑上配置命令行工具 老规矩,拍拍手,上菜. 同学,打开你的mac电脑,按住键盘上的&quo ...

  3. OPPO 后端开发 一、二面面经

    你好,我是 Guide,看了这么多面试成功的经验分享,今天来看一个读者分享的 Oppo 秋招面试失败经历. 面经合集请看:Java面试题&面经精选集. 下面是正文(文中的我为读者本人). 个人 ...

  4. 真正“搞”懂HTTP协议08之重定向

    我们知道,用来传输页面的协议就是HTTP协议,全称是超文本传输协议,而浏览器展示的页面则是用HTML编写的,HTML的全称则是超文本标记语言.你看,都叫做超文本,我在第一篇文章的时候也详细的聊过,超文 ...

  5. 前端Linux部署命令与流程记录

    以前写过一篇在Linux上从零开始部署前后端分离的Vue+Spring boot项目,但那时候是部署自己的个人项目,磕磕绊绊地把问题解决了,后来在公司有了几次应用到实际生产环境的经验,发现还有很多可以 ...

  6. js节流防抖 减少服务器请求

  7. 方法引用_通过类名引用静态成员方法-方法引用_通过super引用父类的成员方法

    方法引用_通过类名引用静态成员方法 由于在java.lang .Nath类中已经存在了静态方法 abs,所以当我们需要通过Lambda来调用该方法时,有两种写法.首先是函数式接口∶ 第一种写法是使用L ...

  8. java 进阶P-6.2+P-6.3

    细胞自动机 CellularAutomation(细胞自动机)细胞自动机(英语:Cellular automaton),又称格状自动机.元胞自动机,是一种离散模型,在可算性理论.数学及理论生物学都有相 ...

  9. Boost线程处理机制

    采自文章:https://www.cnblogs.com/renyuan/p/6613638.html 大多数共享数据的线程均采用 boost::mutex mtx; boost::condition ...

  10. Grafana 系列文章(七):Grafana Explore 中的 Tracing

    ️URL: https://grafana.com/docs/grafana/latest/explore/trace-integration/ Description: Tracing in Exp ...