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


在 ECMAScript 中,變量可以存在兩種類型的值,即原始值和引用值。

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

堆(heap),占內存空間不固定,使用后不一定被銷毀,只有一個對象沒有任何引用時,

系統的垃圾回收機制才會回收銷毀

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

值 的比較

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

存儲詳解
原始值:

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

復制前的變量對象

 

復制后的變量對象

 

 

 

引用值:

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

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM