js小记 function 的 length 属性

原文:js小记 function 的
length 属性

[1,2,3].length  可以得到
3, "123".length 
也可以得到 3,这个略懂js的都知道。

但是  eval.length,RegExp.length,"".toString.length,1..toString.length  会得到什么呢?

分别得到 1,2,0,1,这些数字代表什么呢?

这个是群里很多新人朋友一直问的一个问题,其实函数的 length 得到的是形参个数。
可以参见这里 《MDN Function.length》。
我们来简单看个例子:

function test(a,b,c) {}
test.length // 3

function test(a,b,c,d) {}
test.length // 4

是不是很简单,但是也有特殊的,如果函数内部是通过 arguments
调用参数,而没有实际定义参数的话,length 只会的得到
0。

function test() { console.log( arguments );}
test.length // 0

这个函数确实可以传入参数,而且内部也调用了参数,但是 length 却无法得知传入的参数的个数。
只能在函数执行的时候通过
 arguments.length  得到实参个数。

function test() { console.log( arguments.length );}
test(1,2,3); // 输出 3
test(1,2,3,4); // 输出 4

所以函数的 length
属性只能得到他的形参个数,而无法得知实参个数。

好了今天水了一篇,明天见,,,明天可能会说点PHP的东西。。

js小记 function 的 length 属性,布布扣,bubuko.com

时间: 2024-12-23 05:15:51

js小记 function 的 length 属性的相关文章

JavaScript function 的 length 属性

[1,2,3]. length   可以得到 3 ,  "123" . length   也可以得到 3 ,这个略懂js的都知道. 但是   eval. length ,RegExp. length ,"".toString. length ,1..toString. length   会得到什么呢? 分别得到 1 , 2 , 0 , 1 ,这些数字代表什么呢? 其实函数的 length 得到的是形参个数. 我们来简单看个例子: function test(a,b,

JS 中函数的 length 属性

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>length 属性</title> 6 </head> 7 <body> 8 <script> 9 // length 是函数对象的一个属性值,指该函数有多少个必须要传入的参数,即形参的个数 10 //

js中Function引用类型中一些常见且有用的方法和属性

Function类型 函数由于是Function类型的一个实例,所以函数名就是一个指向函数对象的指针,不会与某个函数死死的连接在一起,这也导致了js中没有真正的重载,但好处是,函数对象可以作为另一个函数的参数或是返回值; 访问一个函数对象的指针而不是执行函数本身不能加括号 var func = new Function("x", "y", "return x + y");// 构造函数来实例化一个Function类型, 但不推荐使用 functi

length 属性 (Function) (JavaScript)

转载:http://msdn.microsoft.com/zh-cn/library/4cz6db7d(v=vs.94).aspx 获取为一个函数定义的参数数目. functionName.length 备注 必要的 functionName 是该函数的名称. 创建函数的实例后,脚本引擎将该函数的 length 属性初始化为该函数定义中的参数数量. 调用函数时,如果其参数数量与其 length 属性的值不同,则发生的情况取决于该函数. 示例 下面的示例阐释了 length 属性的用法: 1 fu

javascript 之Function对象的apply(),call(),bind(),方法和arguments,caller,length属性

注:这篇文章原文:http://www.jb51.net/article/30883.htm 自己作为学习,重新写写. 一.写在前面的话 前端javascript编程还只是略懂皮毛,DOM知道一点,jquey会用一点点,深知夯实基础,了解前端的系统的知识对于web开发(自己主要做的是PHP后台的开发)的重要.固然,要用什么,就查什么(现学现卖)很合理,但对于长远来讲,只是在隔靴捎痒,很难有实际的作为. 故,痛定思痛,应该对web前端,尤其是 javascript开发(过程式-->面向对象-->

转对象(含length属性)成数组Array.prototype.slice.call(arguments)

我们知道,Array.prototype.slice.call(arguments)能将具有length属性的对象转成数组,除了IE下的节点集合(因为ie下的dom对象是以com对象的形式实现的,js对象与com对象不能进行转换) 如: 1 var a={length:2,0:'first',1:'second'}; 2 Array.prototype.slice.call(a);// ["first", "second"] 3 4 var a={length:2}

js 小记

1.操作符的优先级 function(){}()报语法错误的原因: 一元操作符是右序优先结合的.所以你的表达式相当于:function()({}())//实践得出报错都是一样的:所以应该:(function(){})(); 但为什么(function(){}())不报错而且能执行呢? 分组操作符: 主要用途: 1.结合逗号操作符用于赋值.例如:var num = (5,1,4,8,0);这里num最后的值为0. 2.转换为表达式.比如eval('('+jsStr+')');又比如:functio

JS所有内置对象属性和方法汇总

JS三大对象 对象,是任何一个开发者都无法绕开和逃避的话题,她似乎有些深不可测,但如此伟大和巧妙的存在,一定值得你去摸索.发现.征服. 我们都知道,JavaScript有3大对象,分别是本地对象.内置对象和宿主对象. 在此引用ECMA-262(ECMAScript的制定标准)对于他们的定义: 本地对象 与宿主无关,独立于宿主环境的ECMAScript实现提供的对象. 简单来说,本地对象就是 ECMA-262 定义的类(引用类型). 这些引用类型在运行过程中需要通过new来创建所需的实例对象. 包

js中(function(){})()的写法用处

http://blog.csdn.net/u010958922/article/details/47007589 js中(function(){})()的写法用处 http://www.cnblogs.com/lunawzh/p/5274474.html http://www.jb51.net/article/29590.htm 从源码中可以看出jQuery.extend和jQuery.fn.extend是同一个方法,但是具体的作用 却不一样.因为在调用jQuery.extend 和jQuery