JavaScript-函数-操作原理

函数作为JS中引用数据类型的一种,也是按照引用地址来操作的。

function sum(){
var total=1+1;//计算出1+1的和;
total *=20;//total的和再乘以20;
console.log(total.toFixed(2));//打印出total,且保留两位小数。
}
sum();

一.创建函数:
1.首先会在当前作用域中声明一个函数名(声明的函数名和使用var声明的变量名是一样的操作:var sum; function sum;这两个名字算重复了。)

2.浏览器首先会开辟一个新的内存空间(分配一个16进制地址),把函数体中写好的代码当做普通的字符串存储在这个内存空间中。(创建一个函数,如果不执行没有意义。)

3.把内存空间中的地址赋值给之前声明的那该函数名。

二.函数执行:
1.目的:把之前存储的实现具体功能的JS代码执行;
形参赋值:
变量提升:私有作用域中的变量提升。
2.函数执行,浏览器首先会为其开辟一个新的私有作用域(只能执行函数中之前编写的JS代码)
把之前创建时候存储的那些JS代码字符串拿到私有作用域中,然后把它们变为JS表达式从上到下执行。
私有作用域销毁的问题:

3.闭包:
>函数执行会形成一个私有的作用域,让里面的私有变量和外界互补影响(相互不干扰、外面的无法直接获取里面的变量值),此时我们可以理解为私有作用域把私有变量保护起来的,我们把这种保护机制称之为“闭包”。
栈内存:

作用域(全局作用域/私有作用域):提供一个供JS代码执行的环境;

堆内存:

1.所有的引用数据类型,他们需要存储的内容都在堆内存中(相当于一个仓库,目的是存储信息)。
2.对象会把健值对存储进来。
3.函数会把代码当做字符串存储进来。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值