变量的作用域及内存

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了变量的作用域及内存相关的知识,希望对你有一定的参考价值。

一、变量及作用域

1、基本类型和引用类型

ECMAscript变量可能包含两种不同的数据类型的值:

基本类型指的是那些保存在栈内存的简单数据段,即这种值完全保存在内存的的一个位置,而引用类型的值则是指那些保存在堆内存中的对象,意思是变量中保存的实际上只是一个指针,这个指针指向内存中的另一个位置,该位置保存对象。

基本类型值有以下几种:Underfined、Unll 、Boolean、Number、String.这些类型在内存中分别占用固定大小的空间,他们的值保存在栈空间,我们通过按值来访问。

(1)引用类型的变量可以添加属性,而基本类型不能添加属性。

(2)在复制变量的方面,基本类型复制值的本身(复制的值和一前的值是两个独立的,也就是说,两个变量分别操作互不影响),而引用类型复制的是地址(因为指向同一个object,所以改了任何一个变量的值,都会改变)。

2、传递参数

ECMAscript中所以函数的参数都是按值传递的,言下之意就是说,参数不会按引用传递,虽然变量有基本类型和引用类型之分。

3、执行环境及作用域

执行环境定义了变量或函数有权访问的其他数据,决定了它们的行为。全局执行环境是最外围的执行环境。在Web浏览器中,全局执行环境被认为是window对象。

if语句for语句得花括号都没有作用域的作用。

以上是关于变量的作用域及内存的主要内容,如果未能解决你的问题,请参考以下文章

第一百零六节,JavaScript变量作用域及内存

详解js变量作用域及内存

变量作用域及内存

变量作用域及内存

js中变量作用域及内存

JavaScript 变量作用域及内存详解