<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                **理解參數:** JS函數的參數與大多數其他語言中函數的參數有所不同,JS函數不介意傳遞進來多少個參數,也不在乎傳遞進來的參數是什么數據類型。也就是說,即便你定義的函數只接收兩個參數,在調用這個函數也未必一定要傳遞兩個參數。可以傳遞一個,三個甚至不傳遞參數,而解析器永遠也不會有什么怨言。原因是JavaScript中的參數在內部是用一個數組來表示的。函數接受到始終是這個數組,而不關心數組包含多少元素和參數。實際上在函數體內可以通過arguments對象來訪問這個參數數組,從而獲取傳遞給函數的每一個參數。 其實,arguments對象只是與數組類似(它并不是array的實例),因為可以使用方括號語法訪問它的每一個元素(即第一個元素是arguments[0],第二個下標為1,以此類推),使用length屬性來確定傳遞進來多少個參數。 ~~~ function hello(){ alert(arguments[0]+":"+arguments[1]); } hello('姓名','張三'); ~~~ JS如何實現重載: 在JS里面本身是沒有重載這個概念的,但是JS可以在運行時重寫我們的參數以及改變參數類型,這一點很類型與Java的重載; ~~~ public class Test { public void outPut(String name){ System.out.println(name); } public void outPut(String name,String address){ System.out.println(name+":"+address); } public static void main(String[] args) { Test test=new Test(); test.outPut("張三", "上海"); } } ~~~ 上面這段代碼是Java的重載,它在運行的時候會根據方法的參數類型以及個數去匹配對應的參數; ~~~ function outPut(){ if(arguments.length==1){ alert(arguments[0]); }else{ alert(arguments[0]+":"+arguments[1]); } }; outPut('張三','上海'); ~~~ 上面這段代碼類似于JS的重載,即判斷一下參數的個數,來得到去對應的參數信息; 另一個與參數有關的重要方面就是arguments對象可以與命名參數一起使用; ~~~ function outPut(name,address){ if(arguments.length==1){ alert(arguments[0]); }else{ alert(arguments[0]+":"+address); } }; outPut('張三','上海'); ~~~ 關于arguments還有一個比較有意思的事,就是他的值會永遠與命名參數的值保持同步;即我修改了name的值,那么他的arguments[0]的值也會發生改變,這一點跟Java很類似。不過這并不是說兩個值訪問的都是相同的內存空間;他們的的內存是獨立的。但他們的值會同步,這種影響是雙向的,即你修改命名參數的值會改變arguments中對應的值,修改arguments的值也會改變參數的值; ~~~ function outPut(name,address){ name="李四"; arguments[1]="武漢"; if(arguments.length==1){ alert(arguments[0]); }else{ alert(arguments[0]+":"+address); } }; outPut('張三','上海'); ~~~ 關于參數還要記住最后一點,沒有傳遞值的命名參數將自動被賦予undefined值。這就跟定義了遍歷但還沒有初始化一樣。嚴格模式對如何使用arguments對象做出了一些限制。即像前面哪有賦值講會無效;
                  <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>

                              哎呀哎呀视频在线观看