【js】基本类型和引用类型的区别

1.保存方式:(一脸懵逼???)

基本类型是按值访问的,可以在变量的生命周期改变它,但是它是储存在哪里的呢?在浏览器缓存吗?【执行环境中定义的所有变量和函数都存储在执行环境的变量对象里,变量对象我们编写的代码无法访问,但是解析器在处理数据的时候会在后台调用】

引用类型的值保存在内存中,js对访问内存位置有所限制(这种限制如何理解?),当我们复制的时候操作的是对象的引用,当我们为对象删除或添加属性的时候,操作的是实际的变量。

2.动态的属性:

引用类型可以添加删除修改属性,而基本类型没有属性

3.复制变量值:

基本类型复制的另一个变量和原来的变量是单独存放的,引用类型复制的是指针,对象共用。

4.传递参数:

传递的参数如果是基本类型,就相当于基本类型的复制,复制后的局部变量和被复制的是单独储存的。传递的参数如果是引用类型,复制的是指针,其作为函数的局部对象改变的话会同时改变被复制的对象。

5.检测类型:

typeof是检测string , number, boolean,undefined的最佳工具,但检测null的话返回的是object,对function的检测不准确(有可能是正则表达式)。

instanceof可以检测是什么类型的对象。所有引用类型都是Object的实例。Object , Array , Date , RegExp , Function 。

 

posted @ 2017-02-20 07:27  吉古力  阅读(214)  评论(0编辑  收藏  举报