zoukankan      html  css  js  c++  java
  • 函数2

    作用域

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

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

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

    变量生命周期

           全局变量的生命周期直至浏览器卸载页面才会结束。
           局部变量只在函数的执行过程中存在,而在这个过程中会为局部变量在栈或堆上分配相应的空间,以存储它们的值,然后再函数中使用这些变量,直至函数结束
     
     
  • 相关阅读:
    C#基础:ref和out的区别
    .NET Petshop详解(五):petshop输出缓存设置
    静态方法和实例化方法的区别
    .Net Petshop详解(一):petshop概览和准备工作
    什么是MVC(三层架构)
    C# 反射入门知识
    C#类与对象
    linux用户权限的管理
    PHP pear安装
    shell神器curl用法笔记
  • 原文地址:https://www.cnblogs.com/strongerPian/p/12635529.html
Copyright © 2011-2022 走看看