首頁  >  文章  >  web前端  >  javascript中基本資料類型和引用類型的區別分析

javascript中基本資料類型和引用類型的區別分析

不言
不言原創
2018-09-14 15:55:262406瀏覽

本篇文章帶給大家的內容是關於javascript中基本資料類型和引用類型的區別分析 ,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

前言

JS中的型別只有6種,其中基本資料型別有5種分別為string,number,boolen,null,undefined,引用型別有一種,就是object,object是一個大的綜合體,在JS中除了那5個基本資料型態以外,其他的一切皆對象。

正文

兩個對比的例子

基本資料類型
var a = 100;
var b = a;
a++

console.log(a)//101
console.log(b)//100
引用類型(物件)
var obj1 = new object();
var obj2 = new object();
    obj1.age = 18;
    obj2 = obj1;
    obj1.age++

console.log(obj1.age)//19
console.log(obj2.age)//19

  可以看到上面兩個例子都是改變了值,基本資料型態是被賦值的不會改變,而引用的是被賦值的也會隨之改變,那麼這是為什麼呢?其實很簡單,一句話就可以概括:因為基本資料型別保存的是值,而引用型別保存的是位址。

解釋例子

  創建一個新的變數時,會將它存放在堆疊中,如果是物件的話,就會在另外的更大的堆中劃分一片區域,那麼在棧中該物件存放的就是在堆中的位址。

基本資料型別

javascript中基本資料類型和引用類型的區別分析

如上圖,基本資料型別是直接在堆疊中存放值的,當a改變的時候,b不會發生變化,因為b只是等於a的值,和a沒有什麼關係。

引用類型(物件)

javascript中基本資料類型和引用類型的區別分析

#  在obj1和obj2中存放的都是位址,obj2不是等於obj1的值,而是等於obj1在堆中存放的位址,所以當位址中的內容改變時,obj2的內容也會改變。只要建立一個新的對象,在堆中就會開闢一個新的區域去存放對象的屬性和方法等內容。

相關推薦:

跟我學習javascript的基本型別與引用型別_javascript技巧

淺析JavaScript基本類型與引用類型_基礎知識

以上是javascript中基本資料類型和引用類型的區別分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn