引數的傳遞

2022-09-06 22:03:25 字數 1555 閱讀 7687

我們都應該知道所謂的程式語言就是通過一系列的函式變換,實現資料的傳輸,變換,最終呈現出我們所需要的效果。可以說無論是什麼程式語言資料的傳遞都是彌足珍貴的。可是我們在傳輸資料的過程中不能僅僅是簡單的傳輸,我們需要一種載體來承接我們傳輸的內容,也就是我要說的引數。

引數有形參和實參之分,所謂的實參可以理解為實際引數,就是我們通過函式想要傳遞的內容,而形參呢?簡單的說就是形式引數,就是乙個橋梁,用它去接收我們傳遞過來的內容,並存入到儲存單元中,然後釋放形參。那麼實參和形參是怎樣傳遞的呢?在他們的傳遞過程中都發生了那些變化?都要遵循那些規則呢?

(1).引數的傳遞分為2種:

1.值傳遞

顧名思義,值傳遞就是把數值傳遞給形參,也就是說我們只需要隨便拿出乙個形參來接受這個值就好了,當我門在函式內部修改形參,比如形參的名字,是不會影響實參的數值的。

從例子中很容易看出,雖然改變了形參的內容,結果未發生任何變化。

2.引用傳遞

和值傳遞不同,引用傳遞傳遞的是內容的位址。在使用引用傳遞時,計算機是先找到這個實參的位址,然後把位址傳遞給形參,緊接著把位址下的資料依次傳入到形參開闢的空間中去,所以說一旦我們的在函式內部修改了形參,計算機就無法找到對應的位址空間,這樣輸出的就不是我們所需要的資料。

(2).形參和實參的數目問題:

1.呼叫函式傳遞的實參必須與定義的形參的個數是對應的;(在j**ascript中沒有這項要求)

2.超出形引數的實參不進行傳遞;

3.如果沒有對應的實參傳入,形參的型別定義為undefined;

所有的程式語言都需要滿足這3帶點特徵,但是在j**ascript中,實參和形參的數量可以不對應。

(3).引數傳遞時主要應用的函式

arguments函式:在函式體內,識別符號arguments是指向實參物件的引用,一旦我們把實參傳遞給形參是,就會建立乙個arguments物件;它的作用就是把我們傳遞的引數,以陣列的形式                                儲存在對像名為arguments的記憶體空間內,注意,arguments絕不是乙個陣列,他是乙個物件。

arguments的應用:1.雖然他不是乙個陣列,但是我們仍然可以把它當做陣列來理解,通過arguments我們可以獲取裡面的乙個元素,或者獲取傳入實參的個數。

2.對於超出形參個數之外的實參,arguments同樣接收超出的實參,並儲存起來,這是就方便我們來呼叫其中的元素了。使用函式arguments[i] 來呼叫;

3.arguments.length函式是用來計算傳遞的實參個數;

4.argumrnts每個函式都會有,因此,arguments只會在自己內部找自身的arguments,無法引用到外層的arguments。

引數的傳遞基本的內容也就是這些了,只要理解清楚他的傳送機制,我們在編寫程式時就不會感覺手足無措了,認真的看完這篇文章,我想對於引數的傳遞機制,你會有乙個更清楚的認識,不能說讓你大徹大悟,但總會有一些收穫。

引數的傳遞

q 引數 到底是 按值傳遞 還是 按引用傳遞 a 按值傳遞 例子 這裡用乙個經典的 引用型別傳遞到函式引數中 來佐證是按值傳遞的 function setname object let person new object setname person console.log person.name ...

python 引數傳遞 Python 引數傳遞

python中的變數 乙個變數是區域性還是全域性,在編譯函式的時候就已經決定,因此讀變數值的時候也不會逐層向外查詢。變數是全域性還是局域,根據如下3條 1.如果函式內部有global語句,那麼它宣告的變數是全域性的。2.如果函式內部有對變數的賦值語句,那麼它是局域的。3.除此之外都是全域性的。注意1...

python 引數傳遞 python引數傳遞

python中函式引數的傳遞是通過 賦值 來傳遞的。但這條規則只回答了函式引數傳遞的 戰略問題 並沒有回答 戰術問題 也就說沒有回答怎麼賦值的問題。函式引數的使用可以分為兩個方面,一是函式引數如何定義,二是函式在呼叫時的引數如何解析的。而後者又是由前者決定的。函式引數的定義有四種形式 1.f arg...