js中变量包含2种不同数据类型的值
------------------------------------------------------------------------------------------------------------------------------------------------------
1、基本类型值
基本类型值概念-->是简单的数据段,按值访问,包括Undefined、Null、Boolean、Number、String,没有任何属性和方法
基本类型值复制-->新建一个新值来进行复制,不会彼此产生影响,保存在内存中,完全独立的,保存在栈区--->栈内存
基本类型值的判断-->tyepof()可以判断,如果是引用类型(构造函数),那就返回Object
注意:
var arr1=[]; console.log(typeof arr1); ->object,
这里我的理解是 [ ] 是也是一个Array实例(对象),只是简化了命名方式,var arr1=new Array();
2、引用类型值
引用类型值概念-->是有多个值构成的对象,按引用来访问,主要是构造函数(类),由New操作符来构造,包括Date, String, Boolean, Number, Object, Function, Array, RegExp, Error 有相应的属性和方法
引用类型值复制-->是复制一个指针,两个变量实际上引用同一个对象(后面的构造函数继承中,如果直接将父类的prototype等于子类的prototype,那么子类变化也会影响父类,解决方法是让父类的prototype复制一份给子类),保存在堆去--->内存中,是继承的关系
引用类型值的判断-->instanceof来判断是哪种数据类型的引用
个人的理解:
这些默认的方法和属性称为内置方法属性
引用类型是构造出来的对象,也有内置方法属性,可以添加新方法和新属性,或者更改默认的方法和属性,只是存储的方式和复制的方式不同(原型链)