JavaScript數據類型總結


1、  六種簡單數據類型:Undefined、Null、Boolean、Number、String、Symbol(新增);

       一種復雜數據類型:Object;

(1)基本數據類型保存在棧內存中,是按值傳遞的,因為可以直接操作保存在變量中的實際值;

(2)引用數據類型是保存在堆內存中的對象;與其他語言的不同是,JavaScript沒有按引用傳遞,而是傳遞引用類型的參數(按值傳遞,按引用訪問),你不可以直接訪問堆內存空間中的位置和操作堆內存空間,只能操作對象在棧內存中的引用地址;

(3)typeof 操作符適合確定除 Null 以外的簡單數據類型;

1 var a = "hyd";
2 var b = ture;
3 var c = null;
4 var d = new Object();
5 
6 alert(typeof a);      //string
7 alert(typeof b);      //boolean
8 alert(typeof c);      //object
9 alert(typeof d);      //object

 

 (4)  instanceof 操作符可以用來判斷new 出來基本類型(簡單數據類型);

1 var a = new String("hyd");
2 alert(a instanceof String);       //true
3 
4 var b = "hyd";
5 alert(b instanceof String);       //false

 

2、  引用類型:Object、Array、Function、Date、RegExp、基本包裝類型、單體內置對象(特殊引用類型)

(1)引用類型是一種數據結構,用以將數據和功能組合在一起;

(2)使用 new 創建的均為 Object 類型,所有引用類型默認都繼承自 Object ;

(3)使用 typeof 操作符無法有效區分引用類型,只能知道他是對象,而不能知道是什么類型的對象,此時使用 instanceof 操作符;

 1 var o = new Object();
 2 var a = new Array();
 3 var r = new RegExp();
 4 
 5 alert(o instanceof Object);      //true
 6 alert(a instanceof Object);      //true
 7 alert(r instanceof Object);      //true
 8                                               //檢測一個引用類型值與Object構造函數時,始終返回ture
 9 
10 alert(a instanceof Array);         //true
11 alert(r instanceof RegExp);      //true

 

3、  基本包裝類型:Boolean、Number、String;

(1)基本包裝類型首先是基本類型,同時是特殊引用類型;

(2)自動創建的基本包裝類型的對象,只存在與一行代碼執行瞬間,而使用new運算符創建的引用類型的實例,在執行流離開當前作用域之前一直保存在內存中;

PS:typeof 檢測函數返回"function";

        Safair 5 及Chrome 7 之前,typeof 檢測正則表達式返回"function";

        ECMA-262規定:內部實現 [[call]] 方法的對象都應該在typeof 操作符時候返回“function”!

        IE 與 Firefox 中,typeof 檢測正則表達式返回"object";

 


免責聲明!

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



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