ECMAScript 變量可能包含兩種不一樣數據類型的值:基本類型值和引用類型值。基本類型值指的是
簡單的數據段(Undefined、Null、Boolean、Number 和 String),而引用類型值指那些可能由多個值構成的對象。與其餘語言不一樣,js不能直接操做對象的內存空間。在操做對象時,其實是在操做對象的引用而不是實際的對象。爲此,引用類型的值是按引用訪問的。函數
1.複製變量值 指針
一個變量向另外一個變量複製基本類型值和引用類型值時,也存在不一樣。若是從一個變量向另外一個變量複製基本類型的值,會在變量對象上建立一個新值,而後把該值複製到爲新變量分配的位置上。當從一個變量向另外一個變量複製引用類型的值時,一樣也會將存儲在變量對象中的值複製一份放到爲新變量分配的空間中不一樣的是,這個值的副本其實是一個指針,而這個指針指向存儲在堆中的一個對象。複製操做結束後,兩個變量實際上將引用同一個對象。所以,改變其中一個變量,就會影響另外一個變量。對象
2.傳遞參數ip
ECMAScript 中全部函數的參數都是按值傳遞的。也就是說,把函數外部的值複製給函數內部的參
數,就和把值從一個變量複製到另外一個變量同樣,對象也是這樣。簡單的來講,能夠把 ECMAScript函數的參數想象成局部變量。內存