最近突然对js对象有着浓厚的兴趣,就像古代的剑客,想深得剑法精髓,独步天下。想深得其法,必先苦其心志,不耐其燥,起早贪黑,心有所思,时时刻刻都徘徊在脑海中,回忆,理解,探索,深入,必得其之精髓也。
首先,我们得理解何为基本类型,何为引用类型。
1、基本类型:null,undefined,'String',10,true,false等原始值不是对象,不需要构造函数,也没有new操作符来为自己创建值,都是非常简单的一些值,我们称这些类型为基本数据类型,常用的基本数据类型有Boolean,Undefined,Null,String,Number。可以用typeof来检测是否是对象类型。
例如:
var str = "foo";
var str1 = String('foo');
var num = 10;
var num1 = Number('10');
var bool = true;
var bool1 = Boolean('true');
console.log(typeof str,typeof str1); //string,string
console.log(typeof num,typeof num1); //number,number
console.log(typeof bool,typeof bool1); //boolean,boolean
2、引用类型:引用类型可能由多个值构成,引用类型保存在内存中,js是不能直接访问内存的,对于引用类型,操作的不是实际的对象,而是对对象的引用。引用类型包括Object Function。
例如:
var myNumber = new String('hello');
var myString = new String('hello');
var myBoolean = new Boolean(true);
var myObj = new Object();
var myArray = new Array('foo','bar');
var myFunction = new Function("x","y",return x*y);
var myDate = new Date();
var myRegExp = new RegExp('\\bt[a-z]+\\b');
var myError = new Error('Crap!');
console.log(
typeof myNumber; //object
typeof myString ; //object
typeof myBoolean ; //object
typeof myObj ; //object
typeof myArray ; //object
typeof myFunction ; //function
typeof myDate ; //object
typeof myRegExp ; //object
typeof myError ; //object
)
注:基本类型值:指的是保存在栈内存中的简单数据段;
引用类型值:指的是那些保存在堆内存中的对象,意思是,变量中保存的实际上只是一个指针,这个指针指向内存堆中实际的值;
http://images2015.cnblogs.com/blog/825196/201604/825196-20160413130714129-321680369.jpg