首页 > 其他 > 详细

函数2

时间:2020-04-05 09:53:21      阅读:54      评论:0      收藏:0      [点我收藏+]

作用域

function fun(){
    var a =0;
    alert(a);  
}
fun();
alert(a);
作用域:变量的作用范围
全局变量
    作用范围为整个程序的执行范围
    在函数体外部定义的变量就是全局变量
    在函数体内部不使用var定义的也是全局变量
局部变量
    作用范围是某个函数体内部
    在函数体内部通过var关键字定义的变量或者形参,都是局部变量
    当局部变量与全局变量重名时,在函数体内部局部变量优先于全局变量
 
return关键字
    1.结束函数的执行
    2.交回函数执行权
    3.返回一个结果函数调用位置
 
堆栈
    是一种数据结构,指的是数据存取的方式,当定义一个变量时,内存会开辟一段空间
    
    栈( Stack):先进后出(FILO),在栈顶做插入(压栈)和删除操作(出栈)。
    队列:先进先出(FIFO),在队头做删除操作,在队尾做插入操作。
   堆和它们不同,代码执行时系统动态分配,不存在是先进后出还是先进先出。
 

执行环境执行栈(也称执行上下文–execution context)

        当JavaScript解释器初始化执行代码时,它首先默认进入全局执行环境,从此刻开始,函数的每次调用都会创建一个新的执行环境,每一个执行环境都会创建一个新的环境对象压入栈中 
        当执行流进入一个函数时,函数的环境对象就会被压入一个环境栈中(execution stack)。在函数执行完后,栈将其环境弹出,把控制权返回给之前的执行环境。
 
作用域链
内层环境可以访问外层中的变量和函数,而外层环境不能访问内层的变量和函数
 

变量生命周期

       全局变量的生命周期直至浏览器卸载页面才会结束。
       局部变量只在函数的执行过程中存在,而在这个过程中会为局部变量在栈或堆上分配相应的空间,以存储它们的值,然后再函数中使用这些变量,直至函数结束
 
 

 

执行环境执行栈(也称执行上下文–execution context)

函数2

原文:https://www.cnblogs.com/strongerPian/p/12635529.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!