1. 程式人生 > >js之預編譯

js之預編譯

預編譯過程
1.建立AO物件
2.找形參和變數宣告,將變數和形參名作為AO屬性名,值為undefined
3.將實參值和形參統一
4.在函式體裡面找函式宣告,值賦予函式體

程式碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
    b=10;
    console.log(b);//結果-->10
    var b;
    function a(a) {
        console.log(a);//結果--->9
        var a=11;
        var b;
        console.log(b);//結果---->function{}
        b=12;
        function b() {

        }
        console.log(b);//結果--->12
    }
    a(9);

</script>
</body>
</html>

過程:

GO{
a:undefined--->function{}
}
開始執行:
GO{
a:10
}
AO{
a:undefined--->9
b:undefined
}