一、js中的數據類型
1.簡單類型
- number
- string
- bool
- null
- undefined
2.複雜類型
- obiect
3.對“簡單類型傳值,複雜類型傳址”的理解
1.首先理解簡單類型和複雜類型的變量如何在內存中存儲
- 簡單類型的值在棧中存儲,即變量名和變量的值都在棧裏
- 複雜類型的實例對象在堆中存儲,實例對象的地址在棧中存儲:即實例對象的變量名在棧中存儲,變量名對應的是實例對象在堆中的內存地址,堆中存儲的纔是實例對象的值(屬性和方法)
2.簡單類型傳值,複雜類型傳址
- 簡單類型傳值
var a=1;
var b=a; //此時僅僅把a的變量值1賦值給變量b
- 複雜類型傳址
var a={
"name":"js",
"age":20
};
var b=a;//把對象a在內存的地址賦給b
b.age=10;
console.log(a.age);//結果是10
4.小知識
- String類型可以是簡單類型,也可以是複雜類型
- 字符串的值具有不可改變姓,字符串可以通過索引讀取字符串中的某個值,但不能寫
- 基本類型(number、string)如果調用了這種類型的屬性和方法,這個變量就變成了基本包裝類型對象
- 對象&&true=true;
- true&&對象=對象;
~待續