JS中函数的length以及arguments的length如何得到?
function a(x,y){}
a.length // 2
function b(x,y=2,z){}
b.length // 1
function c(x,...args){}
c.length //1
length 是JS函数对象的一个属性值,该值是指 “该函数有多少个必须要传入的参数”,即形参的个数
形参的数量不包括剩余参数个数,仅包括 “第一个具有默认值之前的参数个数”
在没有默认值时,fn.length指的是形参的个数,如果有参数有默认值,那么就取第一个具有默认值之前的参数的个数。
函数的实参个数应该怎么获取?
arguments.length //在函数内部使用,表示实际传入的参数个数,在运行时计算,和形参个数无关
例子:
function a(x,y,z){
console.log(arguments.length); // 3
}(1,2,3)
function b(x,y=2){
console.log(arguments.length) // 3
}(1,2,3)
function c(x,y=2){
console.log(arguments.length) // 1
}
总结来说就是:function.length 获取的是形参的长度 而在函数内部定义的argument.length 获取的是 实参的长度
JS中函数的length以及arguments的length如何得到?的更多相关文章
- js中函数的 this、arguments 、caller,call(),apply(),bind()
在函数内部有两个特殊的对象,arguments 和 this,还有一个函数对象的属性caller. arguments对象 arguments是一个类似数组的对象,包含着传入函数的所有参数. func ...
- JS中函数参数和函数返回值的理解
函数本质就是功能的集合 JS中函数是对象,因此,函数名实际上仅仅是一个指向函数对象的指针,不会与某个函数绑定,所以,JS中没有重载(重载就是通过传递不同类型的参数,使两个相同函数名的函数执行不同的功能 ...
- js中函数传参的情况
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 对JS中函数的理解
函数本质就是功能的集合 JS中函数是对象,因此,函数名实际上仅仅是一个指向函数对象的指针,不会与某个函数绑定,所以,JS中没有重载(重载就是通过传递不同类型的参数,使两个相同函数名的函数执行不同的功能 ...
- JS中函数的本质,定义、调用,以及函数的参数和返回值
要用面向对象的方式去编程,而不要用面向过程的方式去编程 对象是各种类型的数据的集合,可以是数字.字符串.数组.函数.对象…… 对象中的内容以键值对方式进行存储 对象要赋值给一个变量 var cat={ ...
- 关于js中函数的调用问题
js中函数的调用方法 1.直接调用 函数名(参数): 2.通过指向函数的变量去调用 例如: var myval = 函数名: 此刻 myval是指向函数的一个指针: myval(实际参数):此刻调用的 ...
- JS中函数void()
<a href="javascript:void(0)">hello</a>/* * JS中函数void()的运用大体是这种新式; * void()是运算符 ...
- js中函数的参数为函数的情况即回调函数
js中函数的参数可以是数组对象也可以是函数,当参数为函数时我们叫做回调函数 //定义回调函数function B() { console.log("函数B")setTimeout( ...
- js中函数this的指向
this 在面试中,js指向也常常被问到,在开发过程中也是一个需要注意的问题,严格模式下的this指向undefined,这里就不讨论. 普通函数 记住一句话哪个对象调用函数,该函数的this就指向该 ...
- js中函数的一些理论知识
函数的一些理论知识 1. 函数: 执行一个明确的动作并提供一个返回值的独立代码块.同时函数也是javascript中的一级公民(就是函数和其它变量一样). 2.函数的 ...
随机推荐
- 三天吃透Java虚拟机面试八股文
本文已经收录到Github仓库,该仓库包含计算机基础.Java基础.多线程.JVM.数据库.Redis.Spring.Mybatis.SpringMVC.SpringBoot.分布式.微服务.设计模式 ...
- Git多分支 远程仓库 协同开发以及解决冲突
目录 一.Git多分支及远程仓库 1.Git多分支 2.正常密码链接远程仓库 3.ssh公钥私钥方式链接远程仓库 三.协同开发及解决冲突 1.协同开发 2.解决冲突 四.线上分支合并及远程仓库回滚 1 ...
- [网鼎杯2020]boom
[网鼎杯2020]boom 分析 感觉比较友善,主要考查数学运算. 解析 解压之后发现是个exe文件,运行得到一个md5 查询: 输入明文得到: 下个挑战是解三元一次方程: 拿matlab算一下. s ...
- 在grafana中使用不同的数据源及插件安装
一.postgresql作为数据源 现在PG的版本是10.5(10+) 加入datasource 时只能指定一个数据库,对于监控来说可使用默认数据库postgres! 可以方便地作趋势图以及使用tab ...
- Linux中使用Makefile来运行QuestaSim
环境:Win7x64,VMware15.0,centOS7.0,QuestaSim10.7c 假设已经编辑好了一个全加器还有运行这个DUT的testbech,代码如下: 点击查看代码 // filen ...
- 用浏览器打开pdf格式的文件默认全屏显示
打开地址如 http://xxxxx.pdf 在文件地址后面添加#view=FitH,top,可实现全屏查看pdf文件. http://xxxxx.pdf#view=FitH,top,
- [PHP]流程控制的替代语法:endif/endwhile/endfor使用介绍
我们经常在wordpress一类博客程序的模板里面看到很多奇怪的PHP语法,比如: 代码如下: <?php if(empty($GET_['a'])): ?> <font color ...
- WDA学习(26):Phase Indicator使用
1.19 UI Element:Phase Indicator使用 本实例测试创建Phase Indicator; 运行结果: 1.创建Component,View: V_PHASE_IND; 2.创 ...
- Java通过注解获取方法反射运行
//上下文 @Resource private ApplicationContext applicationContext; @Bean public void test(){ //扫描Control ...
- win10 扩展c盘 “PARTITION_BASIC_DATA_GUID"
一不小心化身为c盘战士了,系统卡到不行 于是通过pe登入系统(我自己用的wintogo),然后下载傲梅分区助手(嘎嘎好用) 傲梅官网 https://www.disktool.cn/download. ...