JavaScript-7.0-函数

函数

函数是封装了一段可以被重复调用执行的js代码块。

函数使用

  1. 声明函数
  2. 调用函数
  • 声明变量
    • function 函数名(参数){ 函数体}
function print(){
    console.log("hi");
}

函数不调用是不执行的。

函数调用

//调用上面定义的函数
print();

封装函数

函数的封装是把一个或多个功能通过函数的方式封装起来,对外只提供一个简单的函数接口使用。

函数的参数

参数分为形参和实参,形参。
在声明函数的小括号里是形参,在函数调用的小括号里是实参。
实际上,形参实际上是接收实参的,方法结束后,形参会被销毁。多个形参之间要用逗号隔开

//定义函数
function print(形参1,形参2){

}
//调用函数
print(实参1,实参2)
//

当调用函数时,会将实参的值传递给形参,然后形参的值就会与实参相同,实际上,形参就是定义了一个值临时存储的地方,而实参是长期存储的地方.

  • 如果实参的个数多于形参的个数,则多余的实参不参与函数的运行。
  • 如果实参的个数小于实参的个数,则多余的形参会被默认定义为undefined。

函数返回值

return语句实现返回值。

function 函数名(){
    //函数体

    return 返回结果
}

只要函数运行的过程中遇到return,就会返回结果。

return也叫终止函数,代码运行到此处是会终止运行并且返回值。
return一次只能返回一个值,若没有return,则返回undefined。

当返回多个值时,可以返回一个数组

reutrn [1,2,3,4,5,6];

arguments获取函数参数

当我们不清楚有多少个参数要传递时,我们可以用arguments来获取,arguments实际上是一个内置对象。里面存储了所有传递的实参,以一种伪数组的形式存储。

function fun(){
    console.log(arguments);
    console.log(arguments.length);
    console.log(arguments[2]);
    //可以按照数组的遍历方式将arguments中的元素遍历出来
}

函数相互调用

函数可以调用另一个函数,每个函数都是一个独立的代码块,因此可以相互调用。

函数的两种声明方式

  1. 利用function定义
  2. 函数表达式声明函数

var 变量名 = function(){}
这个函数没有名字,因此也叫匿名函数,该函数存储在变量中,调用时,调用变量名。

作用域

限定代码名字在指定范围内生效。生效的范围称为作用域。
作用域的目的是为了提高程序的可靠性,减少命名冲突。
js的作用域分为全局作用域和局部作用域。

  • 全局作用域是整个script标签或者一个单独的js标签
  • 局部作用域是在函数内部就是局部作用域,只在函数内部起作用。

变量作用域

根据作用域的不同,分为全局变量和局部变量。

在全局作用域下的变量就是全局变量,在全局下都可以使用。
在函数内部没有声明,直接赋值的变量也是全局变量

在局部作用域下的变量叫做局部变量,仅在函数内部使用。函数的形参也可以看作局部变量。

从执行效率来看,全局变量只有在浏览器关闭后才销毁,占内存。而局部变量在代码块结束后就会销毁,局部变量更加节省资源。

作用域链

内部函数访问外部函数的变量,采取链式查找的方式来决定取值,简单来说就是取值就近原则。

var num=1function fu(){
    var num=2;
    function fan(){
        console.log(num);
        //num取值采取就近原则,叫做链式查找。该num形成的作用域叫做作用域链。
    }

} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喝茶谢谢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值