js------值类型和引用类型 区别

在js中,存在两种类型的值:原始值(值类型或基本类型) 和 引用值(引用类型)


// 随机生成n到m的随机数
 
 function random(n,m){
        return Math.floor(Math.random() * (m - n + 1) + n);
  }

调用时,输入实参取代n,m
 

原始值

引用值

概念 原始值指的是 原始类型 的值,也叫 基本类型 引用值指的是 引用类型(类) 的值
数据类型 Number、Stirng、Boolean、Null、Underfined、 Symbol(es6新增) Object、Function、Array、Date、RegExp 
存储 栈(stack),占内存空间固定,使用后被销毁

堆(heap),占内存空间不固定,使用后不一定被销毁,只有一个对象没有任何引用时,系统的垃圾回收机制才会回收销毁

赋值方式

1.值的拷贝,创建一个新对象

2.保存与复制的是值本身

3.两份数据在内存中是完全独立的

1.引用的拷贝,创建一个新引用

2.保存与复制的是指向对象的一个指针

3.变量中的存储的地址赋值一份单独存储,

两个变量中修改其中一个对象,另外一个引用来访问的时候,也会访问到修改后的值。

4.使用 new() 方法构造出的对象是引用型

值是否可变 不可变 可变
作用域 函数作用域,在函数内部修改时生效,函数销毁时失效 函数中被修改时修改的是运行时数据区中的值,即使函数被销毁,变量的值依旧被改变。
比较 方式

值的比较

引用的比较
   

==        只比较值   

===     不仅比较值,还比较数据类型

 
  检测类型   typeof 运算符   instanceof 运算符
发布了163 篇原创文章 · 获赞 31 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/COCOLI_BK/article/details/103954631