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

JavaScript学习笔记五:变量、作用域和内存问题

时间:2016-05-30 23:30:21      阅读:346      评论:0      收藏:0      [点我收藏+]

标签:

1.ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值。在很多语言中,字符串以对象的形式来表示,因此被认为是引用类型的,ECMAScript放弃了这一传统。

2.从一个变量向另一个变量复制基本类型的值,会在变量对象上创建一个新值,然后把该值复制到为新变量分配的位置上,两个变量值操作不会相互影响

3.从一个变量向另一个变量复制引用类型的值时,存储在变量对象中的值复制一份放到为新变量分配的空间中,不同的是,这个值的副本实际上是一个指针,而这个指针指向存储在堆中的一个对象,复制后,两个变量指向同一个对象,操作会相互影响

4.ECMAScript中所有函数都是按值传递的。

5.instanceof常用于检测对象的类型。所有引用类型的值都是Object的实例。

6.在Web浏览器中,全局执行环境被认为是window对象,因此所有全局变量和函数都是作为window对象的属性和方法创建的。全局执行环境直到应用程序退出--关闭网页或浏览器时才会被销毁。每个函数都有自己的执行环境。环境之间的联系是线性有次序的,只能向上搜索外部环境中的变量和函数,不能向下搜索内部环境中的变量和函数。

7.使用var声明的变量会自动被添加到最接近的环境中,如果初始化变量时没有使用var声明,则该变量会自动被添加到全局环境

8.一旦数据不再有用,最好通过将其值设置为null来释放其引用,以释放内存空间。

9.基本类型值在内存中占据固定大小的空间,因此被保存在栈内存中,引用类型的值是大小不固定的对象,保存在堆内存中。

JavaScript学习笔记五:变量、作用域和内存问题

标签:

原文地址:http://www.cnblogs.com/rocklee2016/p/5544075.html

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