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的东西。。

时间: 2024-09-08 09:39:12

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

JavaScript function 的 length 属性使用介绍_javascript技巧

[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,c) {} tes

浅析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 tes

length 属性 (Function)

  返回函数定义的参数数目. functionName.length 所必须的functionName 参数是被讨论的函数的名称. 说明 函数的 length 属性是在创建函数实例时由 Scripting 引擎初始化的,值是函数定义中参数的数目. 如果调用函数时参数的数目和它的 length 属性值不同,那么这时发生的情况将依赖于函数本身. 下面的例子说明了 length 属性的用法: function ArgTest(a, b){   var i, s = "The ArgTest funct

js利用数组length属性清空和截短数组的小例子

 这篇文章主要介绍了js利用数组length属性清空和截短数组的小例子,有需要的朋友可以参考一下 1.使用length清空数组:    代码如下: <script>     var arr1 = ['aaa','bbbb','http://www.jb51.net'];     alert(arr1);     arr1.length = 0;     alert(arr1); //数组为空 </script>     2.使用length截短数组:    代码如下: <sc

length 属性 (Array)

  返回一个整数值,这个整数比数组中所定义的最高位元素的下标大 1. numVar = arrayObj.length 参数 numVar 必选项.任意数值. arrayObj 必选项. 任意 Array 对象. 说明 因为一个数组中的元素并不一定是连续的,所以 length 属性也并不一定就等于数组中的元素个数.例如,在下面的数组定义中,my_array.length 中就包含 7,而不是 2: var my_array = new Array( );my_array[0] = "Test&q

jQuery对象的length属性用法实例_jquery

本文实例讲述了jQuery对象的length属性用法.分享给大家供大家参考.具体分析如下: 此属性返回匹配的jQuery对象集合中对象的数目. length属性与size()方法返回相同的值. 语法结构: 复制代码 代码如下: $("selector").length 实例代码: 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <m

js-关于JS重复更改某标签属性,只显示最后一次更改内容

问题描述 关于JS重复更改某标签属性,只显示最后一次更改内容 嗯,我从Handler里读出Json: [{Num:2,Color:'Red'},Num:2,Color:'Yellow'},Num:2,Color:'Bule'},] 循环Json,读取颜色,把相关的div背景色改成颜色. 然而循环的话,div只会变成蓝色. 我想变成红色几秒,再变成黄色几秒,最后蓝色.请问有什么好方法吗? 解决方案 <div id='divcolor' >测试颜色</div> </body>

vue.js入门教程之计算属性_javascript技巧

前言 计算属性是用来声明式的描述一个值依赖了其它的值.当你在模板里把数据绑定到一个计算属性上时,Vue 会在其依赖的任何值导致该计算属性改变时更新 DOM.这个功能非常强大,它可以让你的代码更加声明式.数据驱动并且易于维护. 模板中表达式非常便利,但是它们实际上只用于简单的操作. 模板是为了描述视图的结构,在模板中放入太多的逻辑会让模板过重且难以维护. 这就是为什么 Vue.js 将绑定表达式限制为一个表达式, 如果需要多于一个表达式的逻辑,应当使用计算属性. 来看这一个简单的例子 <div i

javascript中length属性的探索_javascript技巧

例子1: 复制代码 代码如下: var obj={0:'a',1:'b'} alert(obj.length); //undefined var arr=['a','b'] alert(arr.length); // 2 从上面的例子看,类数组对象中的length属性并不和它储存的数据数量直接挂钩,无论是索引属性(0,1)还是length属性都作为对象的普通属性存在,它们之间并没有任何关系,js引擎并不会根据储存数据的数量来自动计算类数组对象的长度. 但是类数组对象的length所确实和存储的数