码迷,mamicode.com
首页 > 其他好文 > 详细

基本类型、引用类型的复制、传递参数

时间:2017-12-04 17:32:10      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:技术   eof   img   不同的   images   zone   type   str   函数   

基本类型:指的是简单的数据段。基本数据类型是按值访问的,因为可以操作保存在变量中的实际值

  • 引用类型:指那些由多个值构成的对象。引用类型的值是保存在内存中的对象。JavaScript不允许访问内存中的位置,也就是说不能直接操作对象的内存空间。在操作对象时,实际上是在操作对象的引用而不是实际的对象,为此,引用类型的值是按引用访问的。

复制变量值

1、基本类型的复制

从一个变量向另一个变量复制基本类型的值,会在变量对象上创建一个新值,然后把该值复制到新变量分配的位置上。在此之后的任何操作,两个值之间互不影响

技术分享图片

2、引用类型的复制

当从一个变量向另一个变量复制引用类型的值时,同样也会在变量对象中的值复制一份到为新变量分配的空间中。不同的是,这个值的副本实际上是一个指针,而这个指针指向存储在堆中的一个对象。复制操作结束后,两个变量实际上将引用同一个对象。因此,改变其中一个变量,就会影响另一个变量

技术分享图片

 

 传递参数

ECMAScript中所有函数的参数都是按值传递的。也就是说,把函数外部的值复制给函数内部的参数,就和把值从一个变量复制到另一个变量一样。基本类型值的传递同基本类型变量的复制一样,而引用类型值的传递,则如同引用类型变量的复制一样。

在向参数传递基本类型的值时被传递的值会被复制给一个局部变量(即命名参数,或者用ECMAScript的概念来说,就是arguments对象中的一个元素)。在向参数传递引用类型的值时,会把这个值在内存中的地址复制给一个局部变量,因此这个局部变量的变化会反映在函数的外部。

按值传递、按引用传递、按共享传递     (之间的区别见此文)

检测类型

  • typeof操作符:确定一个变量是不是基本类型的最佳工具。如果变量的值是一个对象或null,则typeof操作符将返回“object”。
  • instanceof操作符:确定变量是什么类型的对象。

基本类型、引用类型的复制、传递参数

标签:技术   eof   img   不同的   images   zone   type   str   函数   

原文地址:http://www.cnblogs.com/lmjZone/p/7977834.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!