js的值型別

2021-08-14 11:45:21 字數 1299 閱讀 7723

1.原始值

原始值型別分為五類:number,boolean,,string,undefined,null,

var a=123;     var=123.2  //都是定義number型別該型別可以定義為小數

var a="abc";   var='abc';   //都是定義string型別,定義string類可用「」,也可用『』;但var c='fqaf"錯誤,不可以這樣

var a=true;    var b=false  //定義boolean型別,boolean型別只有該兩種true,false.非假即真,非真即假

2.引用值

引用型別有object,array等(物件,陣列,函式)

原始值與引用值的區別

原始值放在棧(stack)中,

引用值放在堆(heap)中,

原始值: var a=10, var b=a;  b的值相當於複製a的值,所以當a改變時,b不變

引用值型別:宣告陣列a並賦值,陣列b=a. a.push(3)是往陣列a中放入乙個3.當a陣列該變時b陣列跟著改變

這是因為原始值放在棧中,引用值放在堆中

每個棧和堆都有位址和空間

原始值放入棧中是先找到位址,然後放在棧空間裡

引用值放入堆中是先找到棧的位址,在棧的空間裡放入堆的位址,通過堆的位址找到堆並放入堆空間中

所以引用值,陣列b=a,a和b的棧空間裡都是放的同乙個堆位址,都是指向相同的值,當堆空間中的值改變時其餘的都會改變

相當於多個鑰匙同乙個房間

這裡為什麼陣列c改變時,d不變了?這是因為c=[1,3]是在堆中開闢了乙個新空間,該堆的位址不一樣了,c在棧空間放入新堆位址。c和d的棧空間中放入的堆位址也就不同,指向不同的堆。c=[1,3]相當於換了個鑰匙換了個房間

js 中的值型別和引用型別

j ascript中值型別 基本型別 number,string,bool,undefined,null 這5種基本資料型別是按值訪問的,因為可以操作儲存在變數中的實際的值 引用型別 物件 object 陣列 array 函式 function 2.值型別和引用型別的區別 1 值型別 1 占用空間固...

js高階 值型別和引用型別

什麼是引用型別?什麼是值型別?值型別 是指在記憶體棧中 直接儲存資料的本身 常見的資料型別 string,boolean,number,null,undefined 引用型別 是指在記憶體棧中儲存的是資料的記憶體位址 指向了堆中複雜的資料型別 值型別 儲存在棧中,儲存的是值得本身 var str a...

對JS值型別和引用型別的整理

js變數型別 值型別和引用型別 1.值型別占用空間固定,儲存在棧中。2.儲存和複製的都是本身 3.用typeof可以檢測資料型別 4.基本資料型別資料是值型別 1.引用型別占用空間不固定,儲存在堆中。2.儲存的是指向物件的指標。3.用instanceof去檢測資料型別。4.用new 方法構造出的引用...