我爱编程

js基本类型与引用类型

2018-04-16  本文已影响0人  野蛮生长_ed2e

1.js基本类型和引用类型

首先js的变量有两种类型,基本类型值和引用类型值

基本数据类型:null,undefined,string,number,boolean,这五种数据类型是按值访问的,可以操作保存在变量中的是实际值

引用类型:是保存在内存中的对象,js不允许访问内存中的位置,也就是说不能操作对象的内存空间,操作对象是实际上是操作对象的引用而不是实际的对象,引用对象的值是按引用访问的,引用只发生在对象身上

我们可以为一个引用类型的值添加属性和方法

var a  = new Object(); 

a.name = 'zhangsan';

但是为一个基本类型的变量设置属性和方法就会报错

var name = "Nicholas";  name.age = 27;

    alert(name.age);      //undefined

2.复制变量的值

除了保存方式不同,复制的方式也不同

1.如果在一个变量向另一个变量复制一个基本类型值,新对象会被分配一个新地址

基本类型值的复制

2.当向另一个对象复制引用类型值的时候,同样也会为新变量分配空间,不同的是,这个值的副本实际上是一个指针,这个指针指向堆中存储的对象

  var obj1 = new Object();

    var obj2 = obj1;

    obj1.name = "Nicholas";

    alert(obj2.name);  //"Nicholas"

引用类型值的复制

由此可见 基本数据类型存储在栈中

引用数据类型的指针存储在栈中,指向存储在堆中的地址,解释器会先检索在栈中的地址,从堆中获得实体

上一篇下一篇

猜你喜欢

热点阅读