值类型和引用类型

时间:2014-11-05 16:21:03   收藏:0   阅读:126

两种类型:

ECMAScript变量包含两种不同类型的值:基本类型值、引用类型值;

  1. 基本类型值:指的是保存在栈内存中的简单数据段;
  2. 引用类型值:指的是那些保存在堆内存中的对象,意思是,变量中保存的实际上只是一个指针,这个指针执行内存中的另一个位置,由该位置保存对象;

两种访问方式:

  1. 基本类型值:按值访问,操作的是他们实际保存的值;
  2. 引用类型值:按引用访问,当查询时,我们需要先从栈中读取内存地址,然后再顺藤摸瓜地找到保存在堆内存中的值;

bubuko.com,布布扣

 两种类型复制

  1. 基本类型变量的复制:从一个变量向一个变量复制时,会在栈中创建一个新值,然后把值复制到为新变量分配的位置上;
     bubuko.com,布布扣
  2. 引用类型变量的复制:复制的是存储在栈中的指针,将指针复制到栈中未新变量分配的空间中,而这个指针副本和原指针执行存储在堆中的同一个对象;
  3. 复制操作结束后,两个变量实际上将引用同一个对象;因此改变其中的一个,将影响另一个;
    bubuko.com,布布扣

 

函数参数的传递:

ECMA中所有函数的参数都是按值传递的;

这个很容易混乱,意思就是参数都是基本类型,都是值,不是对象。

1 function setName (obj) {
2     obj.name = ‘Nicholas‘;
3     obj = new Object();
4     obj.name = ‘Greg‘;
5 }
6 
7 var person = new Object();
8 setName(person);
9 alert(person.name); //"Nicholas"

两种变量类型检测

原文:http://www.cnblogs.com/niubenbit/p/4076322.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!