1.ES变量可能包含两种不同数据类型的值:基本类型值和引用类型值。基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象。
2.JS不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间。
3.当从一个变量向另一个变量复制应用类型的值时,同时也会将存储在变量对象中的值复制一份放在为新变量分配的空间中。不同的是,这个值的副本实际上一个指针,而这个指正指向村塾在堆中的一个对象。因此,两个变量实际上将应用同一个对象。
4.在检测引用类型的值时,这个操作符的用处不大。而instanceof操作符则可以检测是什么类型的对象。
5.执行环境规定了变量或函数有权访问的洽谈数据,决定了他们各自的行为。每一个与之关联的变量环境都有一个与之关联的变量对象。执行环境有全局执行环境和函数执行环境之分。
6.在web浏览器中,全局执行环境都被认为是window对象,因此所有的全局变量和函数都是作为window对象的属性和方法
7.当代码在一个环境中执行时,会创建变量对象的一个作用链。作用链的用途,是保证对执行环境有权访问的所有变量和函数的有序访问。作用域链的前端,始终都是当前执行代码所在环境的变量对象。全局执行环境的变量对象始终都是作用域链的最后一个对象。每次进入一个新的执行寒假,都会创建一个用于搜索变量和函数的作用域链。
8.在编写JS时,不用关心内存使用问题,所需内存的分配以及无用的回收完全实现了自动管理。
9.JS中最长用的垃圾收集方式是标记清除,另一个就是引用计数(现在不再使用,但IE中访问非原生JS还是会导致问题)。且为了优化内存,一旦数据不在有用,最好通过将其值设置为Null来释放其引用。这种做法叫做接触引用。