標籤:
引用:http://2660311.blog.51cto.com/2650311/1358226/
1)類型、原生類型、物件類型(types、primitive types、object types)
不像我們在學習JAVA時,被告知JAVA是完全OOP的語言:class是一類具有共同特點的物體的抽象,object是某個class下具體的一個實現,Object類是所有類的頂層父類,對Java的認知是從類與對象開始的;Javascript則不然,它是從類型(type)開始,在各類語言中遇到的number,string, boolean, object, function,array等都屬於類型。
這些類型在JS中分為兩大類:原生類型與物件類型,原生類型包括:number,string, bool, null, undefined;剩下的非原生類型對象都屬於物件類型,包括:object, array, function等,那這裡的object專指具有屬性(attribute)的對象,在Firebug中的程式碼範例如下:
1 // 1) primitive types 2 log(typeof 1); // number 3 log(typeof ""); // string 4 log(typeof false); // boolean 5 log(typeof undefined); // undefined 6 log(typeof null); // object null是個特列,屬於原生類型; 7 log(null instanceof Object); // false 8 // 2) object types. 9 log(typeof new Object); // object10 log(typeof new Function); // function11 log(typeof new Array); // object12 13 log(opts.call(new Object)); // [object Object]14 log(opts.call(new Function)); // [object Function]15 log(opts.call(new Array)); // [object Array]
判斷某個值是什麼大的類型沒有意義,往往需要判斷它是什麼原生類型或者物件類型:判斷原生類型,可以使用typeof關鍵字;判斷物件類型,可以使用toString()方法;?? 不理解
javascript prototype(一)