摘要:为什么会如此呢因为中的参数在内部是用一个数组来表示的。演示原因对象只是与数组类似它并不是的实例,可以通过使用方括号语法访问它的每一个元素第一个元素第二个元素以此类推使用属性来确定传递进来多少个参数对象可以与命名参数一起使用
前言
笔者在学习ECMAScript中会将arguments对象与数组混淆,现在理解清楚之后特来此记下,希望帮助大家理解。
描述javascript是个很宽松的语言,ECMAScript中函数不介意传递进来多少个参数,也不在乎传进来参数是什么数据类型。即便你定义的函数只接收两个参数,在调用这个函数时也未必一定要传递两个参数,可以传递一个、三个甚至不传递参数,解析器也不会有怨言。
为什么会如此呢?
因为ECMAScript中的参数在内部是用一个数组来表示的。
在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。
function sayHi(){ alert("Hello " + arguments[0] + "," + arguments[1]); }
原因:arguments对象只是与数组类似(它并不是Array的实例),可以通过使用方括号语法访问它的每一个元素(第一个元素arguments[0],第二个元素arguments[1],以此类推;使用length属性来确定传递进来多少个参数)
function howManyArgs(){ alert(arguments.length); } howManyArgs("string",45); //2
arguments对象可以与命名参数一起使用:
function doAdd(num1,num2){ if(arguments.length == 2){ alert(arguments[0] + num2); } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/99072.html
摘要:本文是本渣在看了中函数的用法之后,写的一些东西,希望能帮助到大家。同时的用法和数组有点类似,和一样,表示第一个对象。返回此对象所在的当前函数引用。在使用函数递归调用时推荐使用代替函数名本身。 本文是本渣在看了JS中函数arguments的用法之后,写的一些东西,希望能帮助到大家。 1.arguments对象 在JavaScript中,arguments对象是比较特别的一个对象,实际上是...
摘要:而对于一个普通的对象来说,如果它的所有名均为正整数,同时也有相应的属性,那么虽然该对象并不是由构造函数所创建的,它依然呈现出数组的行为,在这种情况下,这些对象被称为类数组对象。 为了保证的可读性,本文采用意译而非直译。 想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你! JS数组slice方法是JS语言中最强大、最常用的内建函数之一。 随着React和其他面向功能的J...
摘要:四函数的属性函数的属性列表这个属性先略过上述的属性都可以通过函数名属性来引用,是形参的个数。如果是函数表达式的话,是空串。看代码注意严格模式下不能访问对象的属性 一、new function的用法 1.用法一 此种用法的跟使用{}的区别是:它比较灵活,可以在内部定义变量、函数等 var obj = new function(){ var a = 1; var b = 2;...
摘要:作为对象原型链的终点。调用函数时,应该提供的参数没有提供,该参数等于。它可以用于引用该函数的函数体内当前正在执行的函数。 一 JS 二 CSS 一 JS ==和===的区别 ===叫做严格运算符 ==叫做相等运算符严格运算符比较时不仅仅比较数值还要比较数据类型是否一样相等运算符在比较相同类型的数据时,与严格相等运算符完全一样。 在比较不同类型的数据时,相等运算符会先将数据进行类型转换,...
阅读 623·2023-04-26 01:53
阅读 2749·2021-11-17 17:00
阅读 2880·2021-09-04 16:40
阅读 1983·2021-09-02 15:41
阅读 830·2019-08-26 11:34
阅读 1222·2019-08-26 10:16
阅读 1335·2019-08-23 17:51
阅读 815·2019-08-23 16:50