js基礎-值類型和引用類型

在 ECMAScript 中,變量能夠存在兩種類型的值,即原始值和引用值。函數

  原始值 引用值
概念 原始值指的是 原始類型 的值,也叫 基本類型 引用值指的是 引用類型(類) 的值
數據類型 Number、Stirng、Boolean、Null、Underfined Object、Function、Array、Date、RegExp 
存儲 棧(stack),佔內存空間固定,使用後被銷燬

堆(heap),佔內存空間不固定,使用後不必定被銷燬,只有一個對象沒有任何引用時,spa

系統的垃圾回收機制纔會回收銷燬指針

賦值方式
1. 值的拷貝,建立一個新對象
2.保存與複製的是值自己
3.兩份數據在內存中是徹底獨立的
1. 引用的拷貝,建立一個新引用
2.保存與複製的是指向對象的一個指針
3.變量中的存儲的地址賦值一份單獨存儲,
兩個變量中修改其中一個對象,另一個引用來訪問的時候,也會訪問到修改後的值。
4.使用 new() 方法構造出的對象是引用型
值是否可變 不可變 可變
做用域 函數做用域,在函數內部修改時生效,函數銷燬時失效 函數中被修改時修改的是運行時數據區中的值,即便函數被銷燬,變量的值依舊被改變。
比較方式

值 的比較code

引用的比較
   
== → 只比較值   
=== → 不只比較值,還比較數據類型
 
 
  檢測類型   typeof 運算符   instanceof 運算符

存儲詳解
原始值:對象

var a =100; var b = a; a = 200; console.log(b);//100 

複製前的變量對象blog

 

複製後的變量對象ip

 

 

 

引用值:內存

var a = {age:20}; var b = a; b.age = 21; console.log(a.age);//21 

 

  

相關文章
相關標籤/搜索