js基础-值类型和引用类型

在 ECMAScript 中,变量能够存在两种类型的值,即原始值和引用值。函数

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

堆(heap),占内存空间不固定,使用后不必定被销毁,只有一个对象没有任何引用时,spa

系统的垃圾回收机制才会回收销毁指针

赋值方式
1. 值的拷贝,建立一个新对象
2.保存与复制的是值自己
3.两份数据在内存中是彻底独立的
1. 引用的拷贝,建立一个新引用
2.保存与复制的是指向对象的一个指针
3.变量中的存储的地址赋值一份单独存储,
两个变量中修改其中一个对象,另一个引用来访问的时候,也会访问到修改后的值。
4.使用 new() 方法构造出的对象是引用型
值是否可变 不可变 可变
做用域 函数做用域,在函数内部修改时生效,函数销毁时失效 函数中被修改时修改的是运行时数据区中的值,即便函数被销毁,变量的值依旧被改变。
比较方式

值 的比较code

引用的比较
   
== → 只比较值   
=== → 不只比较值,还比较数据类型
 
 
  检测类型   typeof 运算符   instanceof 运算符

存储详解
原始值:对象

var a =100; var b = a; a = 200; console.log(b);//100 

复制前的变量对象blog

 

复制后的变量对象ip

 

 

 

引用值:内存

var a = {age:20}; var b = a; b.age = 21; console.log(a.age);//21 

 

  

相关文章
相关标签/搜索