javascript代码执行过程

 

1.js是浏览器解释执行的脚本语言

2.js是先 预编译 后 执行 (浏览器js解释器解析)

3.代码执行当前执行环境的活动对象中

4.javascript 按模块执行,同时又遵循HTML文档流的解析顺序

5.js没有快作用域的,if-else等条件语句内的变量可以被外界访问

if( true ){
    var num = 'hanyan'; } console.log( num ); //可以访问到if里的num hanyan

6.一些情况下,代码会提到作用域最前面

第一种: 用var声明的变量
    var str = 'advance';
第二种:函数声明式
    function advance(){};

例子:

demo();	    //hanyan
function demo(){ console.log( 'hanyan' ); } demo(); //demo is not a function var demo = function(){ console.log( 'hanyan' ); };

执行编译:

**代码书写**
fn();
var fn = function(){};
var num = 42; demo(); function demo( data ){ if(false){ goo = 1; }else{ var goo = 2; } console.log( data ); }; **预编译过程** var num,fn; //underfined function demo( data ){ var goo; //underfined if( false ){ goo = 1; }else{ goo = 2; } console.log( data ); }; fn(); fn = function(){}; num = 42; demo();

goo的搜索过程

1.当前作用域内是否有 var goo的定义。

2.函数形式参数是否有使用 goo名称的。

3.函数自身是否叫做 goo。

4.回溯到上一级作用域,然后开始搜索


7.解析各种浏览器网页中的JS执行顺序(麻蛋麻烦上地址)

[JavaScript 全面解析各种浏览器网页中的JS 执行顺序](http://www.jb51.net/article/17261.htm)


[Javascript代码在页面加载时的执行顺序介绍](http://www.jb51.net/article/36330.htm)

8.改变js在页面的执行顺序

1.利用onload 
2.IE中可以利用defer
3.利用Ajax

转载于:https://www.cnblogs.com/warManHy/p/5997882.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值