js中函数的length是多少

 更新时间:2021年09月06日 10:14:03   作者:Sunshine_Lin  
本文主要介绍了js中函数的length是多少,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

前言

我今天给大家讲讲function的length,到底是怎么算的。希望大家能从中学到东西,并且可以巩固一下基础。

为什么

为什么我会想到这个知识点呢?因为昨晚,在一个群里,有一位同学在讨论一道字节跳动的面试题

123['toString'].length + 123 = ?

说实话这道题,我一开始也没答出来。其实我是知道,面试官想考Number原型上的toString方法,但是我卡在了toString函数的length是多少这个难题上。所以才有了今天这篇文章

到底是多少?

形参个数

咱们来看看下面这个例子

function fn1 () {}

function fn2 (name) {}

function fn3 (name, age) {}

console.log(fn1.length) // 0
console.log(fn2.length) // 1
console.log(fn3.length) // 2

可以看出,function有多少个形参,length就是多少。但是事实真是这样吗?继续往下看

默认参数

如果有默认参数的话,函数的length会是多少呢?

function fn1 (name) {}

function fn2 (name = '林三心') {}

function fn3 (name, age = 22) {}

function fn4 (name, age = 22, gender) {}

function fn5(name = '林三心', age, gender) { }

console.log(fn1.length) // 1
console.log(fn2.length) // 0
console.log(fn3.length) // 1
console.log(fn4.length) // 1
console.log(fn5.length) // 0

说明了,function的length,就是第一个具有默认值之前的参数个数

剩余参数

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

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

console.log(fn1.length) // 1

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

总结

总结之前,先公布123['toString'].length + 123 = ?的答案是124

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

到此这篇关于js中函数的length是多少的文章就介绍到这了,更多相关js 函数的length内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 小发现之浅谈location.search与location.hash的问题

    小发现之浅谈location.search与location.hash的问题

    下面小编就为大家带来一篇小发现之浅谈location.search与location.hash的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • 判断横屏竖屏(三种)

    判断横屏竖屏(三种)

    本文主要介绍了通过HTML,CSS,JS三种判断横屏竖屏的方法。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • js实现黑色简易的滑动门网页tab选项卡效果

    js实现黑色简易的滑动门网页tab选项卡效果

    这篇文章主要介绍了js实现黑色简易的滑动门网页tab选项卡效果,可实现简单的鼠标滑过tab项切换对应菜单的功能,涉及javascript鼠标事件控制页面元素的遍历与样式改变实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • 前端图片懒加载的原理与3种实现方式举例

    前端图片懒加载的原理与3种实现方式举例

    图片懒加载又称图片延时加载、惰性加载,即在用户需要使用图片的时候加载,这样可以减少请求,节省带宽,提高页面加载速度,相对的,也能减少服务器压力,下面这篇文章主要给大家介绍了关于前端图片懒加载的原理与3种实现方式的相关资料,需要的朋友可以参考下
    2023-03-03
  • JS实现匀速运动的代码实例

    JS实现匀速运动的代码实例

    这篇文章主要介绍了JS实现匀速运动的代码实例,有需要的朋友可以参考一下
    2013-11-11
  • 原生javascript+css3编写的3D魔方动画旋扭特效

    原生javascript+css3编写的3D魔方动画旋扭特效

    这篇文章主要介绍了原生javascript+css3编写的3D魔方动画旋扭特效的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • js调用父框架函数与弹窗调用父页面函数的简单方法

    js调用父框架函数与弹窗调用父页面函数的简单方法

    下面小编就为大家带来一篇js调用父框架函数与弹窗调用父页面函数的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • Javascript实现Array和String互转换的方法

    Javascript实现Array和String互转换的方法

    这篇文章主要介绍了Javascript实现Array和String互转换的方法,涉及JavaScript中toString方法与split方法的使用技巧,需要的朋友可以参考下
    2015-12-12
  • JavaScript模板引擎应用场景及实现原理详解

    JavaScript模板引擎应用场景及实现原理详解

    这篇文章主要介绍了JavaScript模板引擎应用场景及实现原理,结合实例形式详细分析了javascript模版引擎的具体应用场景、实现原理、相关操作技巧与注意事项,需要的朋友可以参考下
    2018-12-12
  • Bootstrap源码解读表单(2)

    Bootstrap源码解读表单(2)

    这篇文章主要源码解读了Bootstrap表单,介绍了Bootstrap各式各样的表单,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12

最新评论