ES5-4 函数基础与种类、形实参及映射、变量类型
生活随笔
收集整理的這篇文章主要介紹了
ES5-4 函数基础与种类、形实参及映射、变量类型
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
模塊編程原則:高內聚,低耦合(重復部分少),讓一個模塊有強的功能性、高的獨立性 → 單一責任制,用函數進行解耦合。
1. 函數命名規則
- 函數聲明一定有函數名,不然報錯
- 用表達式、字面量的形式聲明函數,test1是會被忽略的。外部不可見,內部可遞歸
- 函數內可獲取實參和形參的個數
- 實參傳了值的,函數內實參可更改 打印出 3 2
- 理解:實參和形參是映射關系,當形參改變,實參指向的堆空間的對應位置的值也改變了
- 實參未傳值的,是無法賦值的,undefined
與其他程序設計語言不同,ECMAScript 不會驗證傳遞給函數的參數個數是否等于函數定義的參數個數。開發者定義的函數都可以接受任意個數的參數(根據 Netscape 的文檔,最多可接受 255 個),而不會引發任何錯誤。任何遺漏的參數都會以 undefined 傳遞給函數,多余的函數將忽略。
- 用 arguments 對象判斷傳遞給函數的參數個數,即可模擬函數重載
- arguments[1]和形參b不是一個東西,一個存在堆內存、一個存在棧內存,但有映射關系(arguments存的是指針)
- 函數內的return作用:終止和執行
- 函數內不寫return,運行時會自動加上return
- 遞歸實現階乘與斐波那契:找到規律和函數出口(函數return)
2. ECMAScript補充
- ECMAScript 的函數實際上是功能完整的對象
- 在下面的形式中,每個 arg 都是一個參數,最后一個參數是函數主體(要執行的代碼)。
- 這些參數必須是字符串。
- 由于字符串的關系,這種形式寫起來有些困難,但有助于理解函數只不過是一種引用類型,它們的行為與用 Function 類明確創建的函數行為是相同的。(但是typeof函數的返回值是function而不是object)
- 函數名只是指向函數對象的引用值,行為就像其他對象一樣。甚至可以使兩個變量指向同一個函數(理解函數重載)
- 所有函數都應看作 Function 類的實例。
- Function 對象也有與所有對象共享的 valueOf() 方法和 toString() 方法。這兩個方法返回的都是函數的源代碼 (原始值的基本包裝類、對象的toString方法)
總結
以上是生活随笔為你收集整理的ES5-4 函数基础与种类、形实参及映射、变量类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 遥感数据网址
- 下一篇: 843. n-皇后问题