1.保存方式:(一脸懵逼???)
基本类型是按值访问的,可以在变量的生命周期改变它,但是它是储存在哪里的呢?在浏览器缓存吗?【执行环境中定义的所有变量和函数都存储在执行环境的变量对象里,变量对象我们编写的代码无法访问,但是解析器在处理数据的时候会在后台调用】
引用类型的值保存在内存中,js对访问内存位置有所限制(这种限制如何理解?),当我们复制的时候操作的是对象的引用,当我们为对象删除或添加属性的时候,操作的是实际的变量。
2.动态的属性:
引用类型可以添加删除修改属性,而基本类型没有属性
3.复制变量值:
基本类型复制的另一个变量和原来的变量是单独存放的,引用类型复制的是指针,对象共用。
4.传递参数:
传递的参数如果是基本类型,就相当于基本类型的复制,复制后的局部变量和被复制的是单独储存的。传递的参数如果是引用类型,复制的是指针,其作为函数的局部对象改变的话会同时改变被复制的对象。
5.检测类型:
typeof是检测string , number, boolean,undefined的最佳工具,但检测null的话返回的是object,对function的检测不准确(有可能是正则表达式)。
instanceof可以检测是什么类型的对象。所有引用类型都是Object的实例。Object , Array , Date , RegExp , Function 。