JavaScript中的函数简要笔记

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中定义了两个名字相同的函数,则该名字指数与后定义的函数

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值