JS基本資料型別和複雜型別的區別

2021-07-30 23:51:14 字數 668 閱讀 1509

1.在記憶體中的儲存方式

基本資料型別把資料名和值直接儲存在棧當中

複雜資料型別在棧中儲存資料名和乙個堆的位址,在堆中儲存屬性及值。訪問時先從棧獲取位址,再到堆中拿出相應的值。

2.不同資料型別作為引數時 函式內部對引數的修改是否改變外部變數的值

(1)基本資料型別作為引數時,函式內部對引數值的修改不會改變外部變數的值

function a(s)

var y=1;

a(y);//y作為引數呼叫函式a

console.log(y);//y還是為1

結果還是1因為把y的值給s時是簡單的複製了乙份,y和s可以單獨操作不相互影響

(2)複雜資料型別作為引數時,函式內部對引數值的修改會改變外部變數的值

因為複雜資料型別賦值是把棧中物件的位址賦給變數,函式內外兩個變數指向同乙個物件,所以只要物件的屬性值改變,兩個變數值都會改變

function student(age,name,agrde)

var s1=new student(18,"wjq",2);//建立乙個student物件

function a(s)

a(s1)//把s1賦給s

console.log(s1.name);//輸出***

所以要弄懂js中簡單資料型別和複雜資料型別的區別,關鍵還要搞懂兩個在記憶體中的儲存過程。

js 基本資料型別和引用資料型別

1 資料型別 js分兩種資料型別 基本資料型別 number string boolean null undefined symbol es6 這些型別可以直接操作儲存在變數中的實際值。引用資料型別 object 在js中除了基本資料型別以外的都是物件,資料是物件,函式是物件,正規表示式是物件 2 ...

JS 基本資料型別 和 引用資料型別

變數都是儲存在棧記憶體中,基本資料型別的值直接在棧記憶體中儲存。相互不影響。var a 123 var b a a b的值不變棧記憶體中 變數值 b123 a123 物件儲存在堆記憶體中 var obj new object obj.name 墨祈 var obj2 obj obj.name moq...

Js 基本資料型別

number是表示數字的型別。在js中沒有整浮 大小 正負之分。2.1 科學計數法3 10 8 3e8 3 10 4 3e 42.2 不同進製 2.3 特殊值 nan是number的乙個特殊值,表示乙個非數字的狀態。它有一些特殊的屬性 typeof nan number nan nan false0...