预编译期和执行期

发布时间:2020-07-22 12:26:39 作者:你的倾城
来源:网络 阅读:445

  在javascript中执行如下代码:      

            var a = 10;

            function outer(){

                alert(a);

                var a = 20;

            }

            outer();

   会产生一个奇怪的结果undefined.其实这是代码执行的两个过程及作用域的问题。

   代码执行的两个过程:

       预编译期:声明变量、定义函数、创建函数空间

       执行期  :变量赋值、语句执行

    对于以上代码,在预编译期,声明一个全局变量a,定义函数outer(),声明一个局部变量a;

  在执行期,执行outer(),执行alert(a),该语句会首先在outer()的局部环境中寻找a,于是找   到了预编译期的第二个a,由于alert(a)在var a = 20 之前,所以此时的这个a 是出于undefined状   态,所以结果就是undefined了。

推荐阅读:
  1. SQLBatch Runner——SQL Server批量执
  2. #line预编译字分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

预编译期 执行期

上一篇:只有自身跟上时代,offer就会如期而至

下一篇:网卡抓取icmp tcpdump

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》