码迷,mamicode.com
首页 > 编程语言 > 详细

《JavaScript高级程序设计》第4章 变量、作用域和内存问题

时间:2015-09-02 21:56:12      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

4.1 基本类型和引用类型

5种基本类型:Undefined、Null、Boolean、Number和String,这5种基本类型是按值访问的,因为可以操作保存在变量中的实际的值。

引用类型:可能由多个值(这里的“多个值”应该是指对象和方法)构成的对象,是保存在内存中的。

4.1.2 复制变量值

当复制基本类型值的变量时,会在变量对象上创建一个新值,然后把该值复制到为新变量分配的位置上。

当复制引用类型值的变量,也就是复制某个对象时,复制的是指针,复制结束后,两个变量实际上将引用同一个对象。

var obj1 = new Object();
var obj2 = obj1;
obj1.name = ‘Natsu12‘;
console.log(obj2.name); // ‘Natsu12‘

 

技术分享

题外话:当复制某个对象时,操作的是对象的引用;当在为对象添加属性时,操作的是实际的对象

 

4.1.3 传递参数

函数传递参数都是按值传递的(不是按引用传递),也就是说把函数外部的值传进函数的参数里,相当于把值从一个变量复制到另一个变量。

但由于复制变量也分为 -> 复制基本类型值 / 引用类型值,所以如果传的参数是一个对象,则对参数的操作还是能反应到函数的外部。

但是请注意:这时候参数依然是按值传递的,而非按引用传递的。

 

4.1.4 检测类型

 

《JavaScript高级程序设计》第4章 变量、作用域和内存问题

标签:

原文地址:http://www.cnblogs.com/natsu12/p/4779483.html

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