回覆列表
  • 1 # 使用者5869621552004

    賦值分兩種:1.原始型別賦值:直接複製該變數的值賦給另一個變數比如

    即兩個變數之間沒有任何關係,b的值不會隨著a的值的改變而改變。 在記憶體中所有的原始型別資料都是存放在“棧”裡面,有固定的大小,賦值就相當新建一條值一樣的資料壓入棧中,兩個變數的記憶體地址不一樣。2.引用賦值:複製該變數的引用(記憶體地址)賦給另一個變數比如在這裡變數a和變數b其實指向的是同一個物件,對a指向的物件進行修改後同樣會反應到b上。 記憶體裡引用物件存放於“堆”中,沒有固定大小,但是其在堆中的地址是以固定大小存放在“棧”內的。引用型別的賦值就是把該變數在棧中的地址值賦給新的變數,兩個變數裡存放的值(即該物件在堆中的地址)一樣當然也就是指向同一個物件了。引數傳遞:根據《Javascript高階程式設計》上說所有的引數傳遞都是按值傳遞,這一點可能不太好理解,引數是原始型別還好說,但當傳遞一個引用物件時,函式內部的修改會反應到外部,看上去就像是按引用傳值一樣。但是如果按照引用型別賦值的原理來看就會好理解多了例子:可能表達不是很清楚,有什麼不懂可以再問

  • 中秋節和大豐收的關聯?
  • 美國繁華的城市究竟有哪些?很多人都說波士頓?