马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

面试题知识点-作用域

[复制链接]
查看3711 | 回复3 | 2017-1-11 23:31:06 | 显示全部楼层 |阅读模式
其实这个也是关于作用域的理解,和上一篇一样。主要是加深理解
[JavaScript] 纯文本查看 复制代码
/**
 * [url]http://www.flvcd.com/[/url]
 *  .--,       .--,
 * ( (  \.---./  ) )
 *  '.__/o   o\__.'
 *     {=  ^  =}
 *      >  -  <
 *     /       \
 *    //       \\
 *   //|   .   |\\
 *   "'\       /'"_.-~^`'-.
 *      \  _  /--'         `
 *    ___)( )(___
 *   (((__) (__)))    高山仰止,景行行止.虽不能至,心向往之。
 */
		var a = 10;
        function aa(){//step-4
            alert(a);//step-5
        }
        function bb(){//step-2
            var a = 20;
            aa();//step-3
        }
        bb();//step-1



主要注意的是:aa()的函数作用域是在全局,那么很自然的他的上级作用域也是全局。只不过是从bb()入口进去而已。
下面介绍一些干货:
关于销毁问题:
1、全局作用域只有在关闭页面的时候才会销毁
2、函数对应的堆内存在没有变量引用的时候才会销毁
3、一般情况下,我们函数执行完成,形成的私有作用域就会自己销毁。例如函数里面的变量就会销毁的。立即执行函数也是。
4、函数执行形成一个私有的作用域,在这个作用域外面有东西占用了作用域里面的内容,那么这个私有的作用域就不能销毁了。例如闭包
5、不立即销毁的情况
函数执行返回了一个引用数据类型的值,但是外面没有变量接收,我只是把返回的值使用了一次,这样当前形成的作用域处于不立即销毁状态,当浏览器空闲的时候会把没用的统一进行销毁
function fn() {
return function (n) {
}
}
fn()(15);


关于函数问题:
1、函数被调用时,它是运行在他被声明时的语法环境中的;
2、函数自己无法运行,它总是被对象调用的,函数运行时,函数体内的this指针指向调用该函数的对象,如果调用函数时没有明确指定该对象, this 默认指向 window ( strict 模式除外,本文不涉及 strict 模式)
3、函数是一种带有可执行代码的对象类型数据。

[JavaScript] 纯文本查看 复制代码
/**
 * 頂頂頂頂頂頂頂頂頂 頂頂頂頂頂頂頂頂頂
 * 頂頂頂頂頂頂頂     頂頂     
 *    頂頂   頂頂頂頂頂頂頂頂頂頂頂
 *    頂頂   頂頂頂頂頂頂頂頂頂頂頂
 *    頂頂   頂頂       頂頂
 *    頂頂   頂頂  頂頂頂  頂頂
 *    頂頂   頂頂  頂頂頂  頂頂
 *    頂頂   頂頂  頂頂頂  頂頂
 *    頂頂   頂頂  頂頂頂  頂頂
 *    頂頂       頂頂頂 
 *    頂頂      頂頂 頂頂 頂頂
 *  頂頂頂頂   頂頂頂頂頂 頂頂頂頂頂
 *  頂頂頂頂   頂頂頂頂   頂頂頂頂
 */




Amy尾巴 | 2017-1-12 09:26:15 | 显示全部楼层
顶顶
ibcadmin | 2017-1-12 17:41:06 | 显示全部楼层
..这个图...
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
min | 2017-1-12 17:42:24 | 显示全部楼层
+1
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则