关于函数的定义、调用和执行

认识函数(定义-执行-销毁(执行空间))

1-先定义
2-再调用
在这里插入图片描述

在JS函数中,数值是先赋值,再进预解析

function fn(a){
      console.log(a);
      function a(){}
    }
    fn(100);//ƒ a(){}  说明在函数中,先赋值,再进行预解析

一个不销毁的执行空间

在函数执行空间中,函数代码执行结束,则执行空间销毁,函数内的变量也会销毁;
若想要保存函数内的变量,怎么办?
答:在函数内返回一个引用数据类型(数组、对象、函数),并且在函数外部一直有一个变量引用这个函数的返回值,此时函数的额执行空间不会销毁(在CPU中)

function fn(a,b){
      const num = 100;
      const obj = {name:'Kelly'}
      return obj;
    }
    let res = fn(10,20);
    /*
    在函数内部:
      函数fn调用,在CPU中开辟一个执行空间 xxff0
      赋值和预解析后将代码放入执行空间xxff0中执行
      声明变量num并赋值100,开辟一个空间 xxff02 来存储对象{name:'Kelly'},并将地址给到变量obj,返回变量obj
    在函数外部:
      变量res接收函数fn的返回值xxff02,所以变量一直和执行空间关联,函数执行空间不会销毁
      直到res不再引用来自xxff02的值(函数返回值)
      语法:res = null
    */ 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值