Javascript关于返回数据类型的一个小笔记
javascript数据类型有两种。
一种是基本数据类型:String、Number、Boolean、Symbol、Underfine、Null
一种是引用数据类型:Object
基本类型也称为简单类型,由于其占据空间固定,是简单的数据段,为了便于提升变量查询速度,将其存储在栈中,即按值访问。
引用类型也称为复杂类型,由于其值的大小会改变,所以不能将其存放在栈中,否则会降低变量查询速度,因此,其值存储在堆(heap)中,而存储在变量处的值,是一个指针,指向存储对象的内存处,即按址访问。引用类型除 Object 外,还包括 Function 、Array、RegExp、Date 等等。
遇到的一点小问题
主要是关于javascript返回数据类型的问题,详细参考自:https://www.cnblogs.com/onepixel/p/5126046.html,这篇博客不仅对javascript返回数据类型做了详细的解释,同时还对原型链的一些知识做了比较详细的解释。
instanceof用于检测数据的原型。A instanceof B,如果数据A是B的实例,则返回true,否则返回false。instanceof只能用来检查引用类型,不能返回检查基本类型,如果定义一个数组a,a既是Array的原型,也是Object的原型,所以a instanceof Array和a instanceof Object都会返回true。
a.__proto__指向Array.prototype,Array.prototype.__proto__又指向Object.prototype,Object.prototype.__proto__指向null,原型链结束。
toString() 是 Object 的原型方法,调用该方法,默认返回当前对象的 [[Class]] 。这是一个内部属性,其格式为 [object Xxx] ,其中 Xxx 就是对象的类型。toString既能够返回基本数据类型,也能够返回引用数据类型: