簡單理解javaScript中的傳遞參數

js中的參數傳遞都是值傳遞形式的。

首先明確的是參數主要分爲兩類:基本類型和值類型

基本類型

基本類型的值傳遞就是值的拷貝,如在函數參數爲基本類型是,參數傳遞就是拷貝一份該數據新的值,在函數中新值的變化不會影響外面的值,所以在基本類型作爲函數參數的時候,值不會受函數操作影響。
如:

在這裏插入圖片描述

引用類型

引用類型其實就是指向內存中某個對象的指針,它的值就是對象在內存空間中的地址。
在引用類型參數傳遞時,其實也是它的值的拷貝,即地址的拷貝。在引用類型作爲參數的函數中,操作參數,其實就操作了引用的對象,所以在函數中的對引用類型參數的操作就會影響到外面的變量。如數組作爲函數參數時,函數內部對數組的操作,也會影響到外部的數組。
如:
···var arr=[]function f(a){a.push("hello")}f(arr)//arr 的值爲["hello"],不再是[]···

引用類型還有很多(除了基本類型),主要是對象,也是同樣的道理。
在寫遞歸算法的時候,引用類型,尤其是數組,作爲參數真的很好用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章