变量的作用域及内存
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了变量的作用域及内存相关的知识,希望对你有一定的参考价值。
一、变量及作用域
1、基本类型和引用类型
ECMAscript变量可能包含两种不同的数据类型的值:
基本类型指的是那些保存在栈内存的简单数据段,即这种值完全保存在内存的的一个位置,而引用类型的值则是指那些保存在堆内存中的对象,意思是变量中保存的实际上只是一个指针,这个指针指向内存中的另一个位置,该位置保存对象。
基本类型值有以下几种:Underfined、Unll 、Boolean、Number、String.这些类型在内存中分别占用固定大小的空间,他们的值保存在栈空间,我们通过按值来访问。
(1)引用类型的变量可以添加属性,而基本类型不能添加属性。
(2)在复制变量的方面,基本类型复制值的本身(复制的值和一前的值是两个独立的,也就是说,两个变量分别操作互不影响),而引用类型复制的是地址(因为指向同一个object,所以改了任何一个变量的值,都会改变)。
2、传递参数
ECMAscript中所以函数的参数都是按值传递的,言下之意就是说,参数不会按引用传递,虽然变量有基本类型和引用类型之分。
3、执行环境及作用域
执行环境定义了变量或函数有权访问的其他数据,决定了它们的行为。全局执行环境是最外围的执行环境。在Web浏览器中,全局执行环境被认为是window对象。
if语句for语句得花括号都没有作用域的作用。
以上是关于变量的作用域及内存的主要内容,如果未能解决你的问题,请参考以下文章