<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 函數 函數是一段可以反復調用的代碼塊,函數區別于代碼塊最顯著的特征就是可以有輸入參數,根據不同的輸入參數,可以返回不同的結果。 ### 函數的聲明 函數的聲明有三種方式,常用的前兩種。 1)function命令 function 命令后面是函數名,函數名后面是一對圓括號,里面是傳入的參數。 ~~~javascript // 函數的聲明或者叫函數的定義 function p(str) { console.log(str); } // 調用函數 p("abc"); ~~~ 2)函數表達式 用變量賦值的寫法去聲明一個函數。 ~~~javascript var print = function(str) { console.log(str); }; print("xxxx"); ~~~ 在上述代碼中,在賦值預算符=右邊的函數,是沒有名字的,我們把這種類型的函數也稱之為匿名函數,匿名函數有時我們也叫做函數表達式。 > 在通過函數表達式定義一個函數的時候,在語句后面要加上“;”。 3)Function構造函數 很少用這種方式定義:語義不明確,代碼的可讀性差。 ### 第一等公民 JavaScript將函數看做一個值,與其他類型的值(數值、字符串、布爾值等)地位相同。凡是可以使用值的地方都可以使用函數,可以把函數賦值給變量或對象的屬性。也可以當做參數傳遞給其他函數,或者作為函數的結果返回。函數只是一個可執行的值,此外并無特殊之處。 ~~~javascript function add(x, y) { return x + y; } var add = function(x, y) { return x + y; }; var oper = add; print(oper(2,2)); // 4 function a(op) { return op; } print(a(add)(1,2)); // 3 var o2 = { name : "Tom", add : add }; print(o2.add(3,3)); // 6 ~~~ ### 函數名的提升 Javascript引擎將函數名視同變量名。所以采用function命令聲明函數時,整個函數就會像變量聲明一樣,提升到代碼頭部。 ### 函數的屬性和方法 * name屬性:輸入函數的名字 * length屬性:輸入函數參數的個數 * toString()方法:返回函數的源碼 ~~~javascript print("add.name=" + add.name); print("add.length=" + add.length); print("add.toString()" + add.toString()); ~~~ ### 函數的作用域 作用域(scope)稱之為變量存在的范圍。 在Javascript中只有兩種作用域,一種是全局作用域:即變量在整個程序中一直存在,所有的地方都可以讀取。 另一種叫函數作用域:即變量只在函數內部存在。 ~~~javascript var i = 0; // 這里的i是全局變量,可以在頁面的任何位置引用 function t() { var j = 0; console.log("j=" + j); console.log("i=" + i); } // console.log("out j = " + j); // 此處代碼會報錯,j is not defined t(); ~~~ 函數體內的變量提升 ~~~javascript function t() { console.log("j=" + j); // j=undefined var j = 0; console.log("i=" + i); } ~~~ ### 參數 函數在運行的過程中,有時需要提供外部數據,不同的外部數據可能會得到不同的結果,我們把這種外部數據叫做參數。需要特別注意的時,在Javascript語言中是不需要指定參數的數據類型的。 ~~~javascript function p(str) { console.log(str); } ~~~ **參數的省略** 在javascript中,函數的參數不是必須的,Javascript可以省略。 ~~~javascript function p(str, flag) { console.log("str=" + str); console.log("flag=" + flag); } console.log("======================="); p("hello"); console.log("======================="); p("hello",true); console.log("======================="); p(); console.log("======================="); ~~~ > 被省略的參數的值變成“undefined”; > 但是,沒有辦法只傳遞靠后的參數,省略靠前的參數,可以通過顯示的傳入undefined。 關于默認值的實現 ~~~javascript function f(a) { a = a || 1; console.log("a:" + a); } f(); // 1 ~~~ ### 傳遞方式 函數參數如果是原始數據類型(數值、字符串、布爾型),都是傳值傳遞,如果在函數體內修改了變量的值,不會影響到函數體外。 ~~~javascript function f(o) { o = 5; console.log("o=" + o); } var i = "abc"; f(i); console.log("i=" + i); // abc ~~~ 但是,如果函數的參數是復合數據類型的值(數組、對象、函數等),傳遞方式是引用傳遞。也就是說,在函數內部修改了原對象的值,會影響到原來的值。 ~~~javascript function fo(oj) { oj.name = "Jack"; console.log("oj.name=" + oj.name); } var obj = { name : "Tom", age :20 }; fo(obj); console.log("obj.name=" + obj.name); // Jack ~~~
                  <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>

                              哎呀哎呀视频在线观看