<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] >[success] # 塊級函數 ~~~ 什么是'塊級函數'? 答: 就是在一個代碼塊(if{ })中寫函數,例如: ~~~ ~~~ if(true){ function heheda(){ // 塊級函數 } } ~~~ <br/> >[success] ## 塊級函數的變量提升 ~~~ 大家都知道'var'會存在'變量提升','塊級函數'也存在'變量提升' ~~~ 非嚴格模式下: ~~~ console.log(doSomething) // undefined if (true) { doSomething() // 1 function doSomething() { console.log(1) } doSomething() // 1 } doSomething() // 1 ~~~ 嚴格模式下: ~~~ "use strict" console.log(doSomething) // 報錯: doSomething is not defined if (true) { doSomething() // 1 function doSomething() { console.log(1) } doSomething() // 1 } doSomething() // 報錯: doSomething is not defined ~~~ var定義的函數表達式情況下: ~~~ "use strict" console.log(a) // undefined if(true){ console.log(a) // undefined var a = function(){ console.log(1) } a() //1 } a() // 1 ~~~ <br/> >[success] ### 總結 ~~~ 1.在'非嚴格模式'下,代碼塊(if{})上可以打印出'undefined',代碼塊下可以執行代碼塊中的'塊級函數', 在'代碼塊'中'塊級函數'的上下都可以調用'塊級函數' 2. 在'嚴格模式'下只有在代碼塊中(if{})'塊級函數'上下可以調用'塊級函數',在代碼塊外調用'塊級函數'會報錯 3.用'var'定義的'函數表達式'充當'塊級函數'使用,無論是'嚴格模式'還是'非嚴格模式',都會存在'變量提升' ~~~ <br/> >[success] ## let定義的塊級函數 ~~~ 在代碼塊(if{})中,使用'let'定義的'函數表達式'是'沒有變量提升'的 ~~~ 嚴格模式下: ~~~ "use strict" console.log(doSomething) // doSomething is not defined if (true) { doSomething() // 報錯 let doSomething = function(){ console.log(1) } doSomething() // 1 } console.log(doSomething) // doSomething is not defined ~~~ 非嚴格模式下: ~~~ console.log(doSomething) // doSomething is not defined if (true) { doSomething() // 報錯 let doSomething = function(){ console.log(1) } doSomething() // 1 } console.log(doSomething) // doSomething is not defined ~~~ <br/> >[success] ### 總結 ~~~ 1. 代碼塊(if{})中如果使用的是'let'定義的'函數表達式'當做'塊級函數',只能在'塊級函數'下面使用, 不可以在'代碼塊外'使用,無論是'嚴格模式'還是'非嚴格模式'下,在'代碼塊外'使用'塊級函數'都會報錯 ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看