函数 && 函数运行机制

在js中,函数就是一个方法(一个功能体),基于函数一般都是为了实现某个功能

函数诞生的目的就是为了实现封装,把实现一个功能的代码封装到一个函数中,后期想要实现相同功能,只要执行这个函数即可,不必再次重复编写代码,起到了 “高耦合,低内聚”的作用

高耦合,低内聚:减少冗余代码,提高代码的重复使用率

//语法
function 函数名称( 参数 ){

     函数体:实现功能的js代码

}

函数名() ;//执行函数

//ES6 箭头函数

let 函数名( 变量名 )=( 参数 )=>{

   函数体
}
function fn(){

   var num=10;
   ....

}


let fn=()=>{

  let num=10;

}

fn();

函数作为引用数据类型中的一种,它也是按照引用地址来操作的,接下来学习一下函数的运行机制:

创建函数:

1、首先会开辟一个新的堆内存,把函数体的代码当做字符串存储到内存中

2、把开辟堆内存的地址赋值给函数名(变量名)

执行函数:

把之前储存到堆内存的代码字符串变为真正的代码执行,实现应有的功能

1、函数执行,首先会形成一个私有作用域(栈内存,代码执行的环境)

2、把之前储存在堆内存的代码字符串复制一份过来,变成真正js代码,在新开辟的作用域中 自上而下执行

函数的形参和实参

参数是函数的入库:当我们在函数中封装一个功能,发现原材料不确定,需要执行函数的时候传递进来,此时就基于参数的机制,提供出入口即可

例如:求任意两个数的和,参数是任意不知道的两个数

function sum(n,m){//形参变量  入口  n和m代表要求和的两个数字

    return n+m;
}

sum(10,30);//实参  具体的数据值  n是10,m是30
sum(50);//n是50,m是 undefined
sum();//n,m 都是 undefined
sum(1,2,3);//n 是1,m是2,3没有接收的形参变量

形参:函数创建时的入口,是函数的私有变量,只能在当前私有作用域起作用,可有多个

实参:函数执行的时候传递的具体的数据值

 arguments形参集合

 

posted @ 2019-08-29 23:05  欣欣向荣998  阅读(590)  评论(0编辑  收藏  举报