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

javascript变量、作用域和内存问题

时间:2017-06-11 19:11:16      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:存储   number   传递   div   分享   .com   logs   regexp   obj   

一.基本类型(传值后两者不互相影响)

5种:Undefined、Boolean、Null、Number、String

基本类型的赋值是传递该值得副本。两者可以参与任何操作而不受影响。

二.引用类型(传值后两者会互相影响)

指可由多个值构成的对象

变量为引用类型的变量,其存储的是指向存在内存(堆)中的引用类型的指针的值

传值为传指针的值的副本,最终两者指向的是内存中同一个位置,两者会互相影响

三.传递参数

1.传递的参数为基本类型:

被传递的值会被复制给一个局部变量。(参数属于arguments对象中的一个元素)

2.传递的参数为引用类型:

会把这个值在内存中的地址复制给一个局部变量,因此局部变量的变化会反映在函数外部。

function addTen(num){
    num += 10;
    return num;
}
var count = 10;
var result = addTen(count);//传基本类型,为传副本,两者互不影响
console.log(count);//10
console.log(result);//20

技术分享

四.检测类型

1.typeof操作符是确定一个变量是字符串、数值、布尔值、还是undefined的最佳工具(确定基本类型的种类)

2.instanceof是确定引用类型是Object、Array、RegExp的最佳工具

五.执行环境及作用域

内部环境可以通过作用域链访问所有的外部环境,但是外部环境不能访问内部环境中的任何变量和函数。每个环境可以向上搜索作用域链,以查询变量和函数名。

javascript变量、作用域和内存问题

标签:存储   number   传递   div   分享   .com   logs   regexp   obj   

原文地址:http://www.cnblogs.com/krystalcl/p/6985894.html

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