1. 程式人生 > 其它 >Js從入門到精通——基礎知識3

Js從入門到精通——基礎知識3

基本型別值和引用型別值區別

var a =b,基本型別值會產生新的副本,引用型別值不會產生新的副本,而是讓新變數指向同一個物件

當用==比較時,基本型別值比較值是否相等,引用型別值比較記憶體地址是否相同

深克隆和淺客隆

淺客隆:只克隆陣列的第一層,如果是多維陣列,或者陣列中的項時其他引用型別值,則不不克隆其他層

深克隆:克隆陣列所有層,要使用遞迴的技術

淺拷貝:準備一個空的結果陣列,然後使用for迴圈遍歷原陣列,將遍歷到的項都推入結果陣列

深拷貝:使用遞迴思想,整體思路和淺克隆類似,但稍微進行一些改動:如果遍歷到項是基本型別值,則直接推入結果陣列;如果遍歷到的項是又是陣列,則重複執行淺克隆的操作。

函式的定義

function fun(){}

var fun=function(){}

閉包

閉包是有權訪問另一個函式作用域中的變數的函式,

記憶性、模擬私有變數。

js閉包優點,缺點。

優點:能夠訪問函式內部的變數,讓這些變數一直存在記憶體中,不會在呼叫結束後,被回收。

缺點:不能濫用閉包,否則會造成網頁的效能問題,嚴重時可能導致記憶體洩露。所謂記憶體洩漏是指程式中己動態分配的記憶體由於某種原因未釋放或無法釋放。