第78天python JavaScript 变量 作用域 及内存

javascrip的变量与其他语言的变量有很大区别。JavaScript变量是松散型(不强制类型)本质,决定了它只是爱特定时间用于保存特定值的一个名字而已,由于不存在定义某个变量必须保存何种数据类型值的规则,变量的值及其数据类型可以在脚本的生命周期内改变

1、变量:

ECMAScript变量可以包含两种不同的数据类型的值,基本类型值和引用类型值

基本类型值指的是那些保存在栈内存中的简单数据段,即这种值完全保存在内存中一个位置;

引用类型值则是指那些保存在堆内存中的对象,意思就是变量中保存的实际上只是一个指针,这个指针指向内存中的另一个位置,该位置保存对象

 

2、执行环境及作用域:

执行环境是JavaScript中最为重要的一个概念,执行环境定义了变量或是函数有权访问的其他数据,决定了他们各自的行为。

全局执行环境是最外围的执行环境,在web浏览器中,全局执行环境被认为是Windows对象,因此所有的全局变量和函数都是作为window对象的属性和方法创建的

 

3、内存问题:

JavaScript具有自动垃圾收集机制,也就是说,执行环境会负责管理代码执行过程中使用的内存,它会自动管理内存分配及无用内存的回收。不像C和C++,必须手工跟踪内存的使用情况

JavaScript最常用的垃圾收集方式是 清楚。

一般来讲,确保占用最少内存可以让页面获得更好的性能,那么优化内存的最佳方案就是一旦数据不再有用,那么将其设置为null来释放引用,这个做法叫做解除引用。这一做法适用于大多数全局变量和全局对象。

posted on 2020-02-06 13:31  坚持是多么伟大的事情  阅读(94)  评论(0编辑  收藏  举报