JS引用类型值和基本类型值
2019-12-14 本文已影响0人
鲁女女
数据类型中分为五种简单的数据类型和一种复杂的数据类型。他们分别对应着基本类型值和引用类型值。
基本类型值有:null
、undefined
、number
、boolean
、string
引用类型值:object
(正则、数组、函数、Date
等)
分类的原因:按照存储的方式不同来划分
基本类型值
基本类型值按值访问,直接访问变量中的实际的值
基本类型值都是储存在栈区
-
基本类型值的特点
1.基本类型值不可变(除非赋值后直接替换新值)
2.我们不能给基本类型值设置自定义的方法和属性
3.基本类型值的比较是 值和值的比较
4.基本类型值的变量储存在栈区,栈区包括 变量的标识符 和变量的值 -
示例
var num1 = 10;
var num2 = 20;
var num3 = num1;
num3 = 40;
console.log(num1);//10
console.log(num3);//40
引用类型值
在栈区储存的是 变量的标识符 和 对象的引用地址 在堆区储存的是对象本身
当访问一个对象的时候,要先访问到栈区的地址,然后通过地址去找到对象
- 引用类型值的特点
1.引用类型值是可变的,我们可以给引用类型值设置属性和方法
2.引用类型值是同时保存在堆区和栈区
3.引用类型值的比较是地址的比较
var obj1 = {
age:"18"
};
var obj2 = obj1;//对象的赋值,是把引用地址赋值过去的
console.log(obj2); //{age: "18"}
obj2.age = 30;//改变obj2 也是改变obj1 因为地址一样 是同一个对象
console.log(obj1); //{age: 30}
console.log(obj1 === obj2); // true
console.log({}==={});//false