首頁>Club>
5
回覆列表
  • 1 # 1234567啊額


    全域性變數的三種宣告方法

    全域性變數有如下三種宣告方法(這裡以舉宣告FWK這個變數為例):

    1、使用var直接宣告  var FWK;

    2、使用window.FWK = ….;

    3、隱式宣告全域性變數(定義FWK前不加var) FWK

    它們的區別在哪裡呢?更提倡何種寫法?

    使用var 定義的變數,將被提前預解析,如下的程式碼:

    <script type="text/javascript"> alert(FWK); FWK = 'ddd'; </script>

    <script type="text/javascript"> alert(FWK); window.FWK = 'ddd'; </script>

    <script type="text/javascript"> alert(FWK); var FWK = 'ddd'; </script>

    其它的二種宣告方法,將會被告知FWK未定義(FWK is not defined)

    看看這三種宣告的方式,是否能被for in出來:

    <script type="text/javascript"> window.FWK = 'ddd'; for (var i in window) { if (i === 'FWK') { alert(i + '---' + window[i]); } } </script>

    <script type="text/javascript"> FWK = 'ddd'; for (var i in window) { if (i === 'FWK') { alert(i + '---' + window[i]); } } </script>

    <script type="text/javascript"> var FWK = 'ddd'; for (var i in window) { if (i === 'FWK') { alert(i + '---' + window[i]); } } </script>

    除了window.FWK的方式能被for in 出來,其它二種均不行。

    再看看它們是否能被delete:

    <script type="text/javascript"> var FWK = 'ddd'; alert( delete FWK ); alert(FWK); </script>

    顯示false ddd,說明var 宣告的變數無法使用delete

    <script type="text/javascript"> FWK = 'ddd'; alert( delete FWK ); alert(FWK); </script>

    顯示true FWK未定義,說明隱式宣告的全域性變數可以被delete,與global物件的parseInt、escape、parseFloat等等類似,可直接被delete。

    <script type="text/javascript"> alert(parseInt); alert(delete parseInt); alert(parseInt); </script>

    <script type="text/javascript"> window.FWK = 'ddd'; alert( delete FWK ); alert(FWK); </script>

  • 中秋節和大豐收的關聯?
  • 原始傳奇戰士後期打怪厲害麼?