1. 程式人生 > >JS---預解析、聲明提升

JS---預解析、聲明提升

define div script 處理 聲明 cti style window對象 變量

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    </body>
    <script>
        //預解析,變量聲明提升
        if(! ‘a‘ in window){
            var a=123;
        }
        alert(a);
//undefined /*說明: * 1.變量聲明提升,var a; * 2.變量a是window對象的一個成員,if的條件為假,所以賦值語句沒有執行。 * 3.最後打印的a為undefined,因為a聲明了蛤沒有賦值。 * / //函數聲明提升,函數雖然寫在後面,但聲明會提升 foo();//1 function foo () { alert(1); } // if語句中的函數 if(true){ function f1 () { console.log(‘true‘); } }else{ function f1 () { console.log(‘false‘); } } f1();//true // 說明:在新版本的瀏覽器中,寫在邏輯判斷語句塊中的函數會當作表達式來處理,不會當作函數聲明,所以也不存在函數提升的問題。 </script> </html>

JS---預解析、聲明提升