js解析器
1>js的預解析
找var function 參數等
所有的變量,在正式運行代碼前,都提前賦了一個值:未定義
所有的函數,在正式運行代碼前,都是整個函數塊。
遇到重名的:只留一個 如果變量與函數重名,則留下函數,如果級別相同,則留下面的。
2>逐行解析代碼
表達式:= + - * / ++ -- ! 參數....
表達式可以修改預解析的值
例:
alert(a); //function a(){alert(4);}
var a=1; //1
function a(){alert(2);}
alert(a); //1
var a=3;
alert(a); //3
function a(){alert(4);}
alert(a); //3
a(); //報錯
?3>火狐瀏覽器不能對if(){}中定義的函數進行解析,所以盡量定義函數或者變量在if之外定義
4>在if條件里面的var 定義變量和定義function(){}函數都是全局的
?
轉載于:https://www.cnblogs.com/yuxingyoucan/p/5721798.html
總結
- 上一篇: 获得WebApi用Post方法获得新增数
- 下一篇: 我的第一个用Hibernate框架写的小