JavaScript中的函数简要笔记

    技术2025-10-12  20

    JS中的函数

    函数对于任何语言来说都是一个核心的概念。通过函数能够封装任意多条语句,而且可以用在任何的地方、任何时候调用执行。ECMAScript中的函数使用function 关键字来进行生命,后边跟一组参数以及函数体。函数的基本语法如下所示:

    function functionName(arg0,arg1,arg2,...argN){ statement }

    下边是一个函数的例子

    function functionName(name ,message){ console.log('my name is '+name+","+message) } functionName('kevin',"what's your name ?")

    输出的是:my name is kevin,what’s your name ?

    这里有需要注意函数通过函数名来调用,然后里边的参数就是作为变量来使用。

    函数中return的特点:

    在ECMAScript当中函数在定义时不必制定是否返回值。实际上,任何函数在任何时候都可以通过return语句后跟上要返回的值来实现返回值。除了return语句之外,没有任何的声明表示该函数会返回一个值。这个函数会在执行完return之后立即进行退出。因此,位于return语句之后的任何代码永远都不会执行。一个函数中也可以包括多个return 语句。 function Diff(num1,num2){ if (num1<num2){ return num1+"<"+num2; } else if (num1>num2){ return num1+">"+num2; } else{ return num1+"="+num2; } } var diff = Diff(1,2) console.log(diff)

    这里需要注意的是,这边的return不会输出任何的东西,只有将人return转换成变量的时候,输出变量才会看到这个被执行之后的值是多少。 一般来讲return语句也可以不带任何职,在这种情况下,函数在停止执行后将返回的值是undefined。

    需要注意的是在严格模式对函数有一些限制

    不嗯能够够把函数命名为eval或者arguments;不能够把参数命名为eval或者arguments;不能够出现命名参数相同的情况‘

    如果发生上述的情况,就会导致语法错误,代码无法执行。

    理解参数

    JS中的参数不限制个数不限制类型,因为JS内部的参数是用一个数组来表示的。实际上,在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。其实,arguments对象只是与数组类似,他并不是一个array的实力,因为可以使用方括号语法访问他的每一个元素,能够使用length属性来确定传进来多少个参数。这个事实说明了ECMAScript函数的一个重要的特点:命名的参数只是提供比便利,但是并不是必须的。所以利用这一点,开发人员能够让一个函数接收任意多个参数,并且分别利用它们来实现不同的功能。还有一个特点就是arguments参数是能够和参数本身结合使用的。arguments的值永远与对应命名参数的值保持同步。但是如果是没有传递值得参数将自动被赋予undefined的值,这就跟定义了变量但是又没有初始化是一样的道理 function doAdd(num1,num2){ arguments[1]=10; console.log(arguments[1]+num2) } doAdd(1,2) // 这输出的是20

    注意: 在严格模式中对arguments做出了一些限制。首先,像前面的例子中那样的赋值操作会变得无效。重写arguments的值会导致语法错误 ECMAScript中的所有参数的传递的值,都不可能通过引用传递参数。

    没有重载

    ECMAScript函数不能够像传统意义上那样实现重载。 而在其他语言当中,例如Java,可以为一个函数编写两个定义,只要这两个定义的签名(接收的参数的类型和数量不同即可)。如前所述ECMAScript的函数是没有签名的,因为其参数是有包含另个或者多个值得数组来表示的。没有函数清明,真正的重载时不可能做到的。

    如果在ECMAScript中定义了两个名字相同的函数,则该名字指数与后定义的函数。

    Processed: 0.013, SQL: 9