主题:JavaScript变量、作用域和内存问题
JavaScript的变量和别的语言比起来是与众不同的。说道变量,不得不谈他的作用域。同很多语言一样,JavaScript开发者也不用担心开发中内存的占用。JavaScript具有自动的垃圾处理机制,去处理内存占用问题。同样,下面我对本章的一些注意点进行了总结。
①JavaScript变量包含两种不同类型的值:基本类型值(Undefined、Null、Boolean、Number、String)和引用类型(Object...)
②引用类型的值是存在内存中的对象。JavaScript不允许直接访问内存中的位置,即不能直接操作对象的内存空间。也就是说,我们平时操作的只是对象的引用
③JavaScript只接受对引用类型动态的添加属性
④instanceof操作符专门用于判断变量类型,若是引用类型返回true,基本类型返回false
1 var person = { 2 name: "xuchaoi", 3 age: 24 4 }; 5 alert(person instanceof Object); // 执行后,弹出提示true。
⑤JavaScript中存在全局执行环境和局部执行环境。在浏览器中,全局执行环境就是window。每个函数拥有自己的局部执行环境。例:函数中获取一个变量,首先会在函数自身的局部环境中查找,找不到的话会去外层查找,直到查到最外层(全局执行环境window)
⑥JavaScript中不存在块级作用域。
1 if(true){ 2 var color = "blue"; 3 } 4 alert(color); 5 // 执行后出现弹框显示blue。如果在C、Java中程序会出错,因为if语句执行后就会被销毁,后面就没有color的值了!
⑦JavaScript具有自动垃圾回收机制。
⑧尽管不必担心内存管理问题,但出于程序性能的考虑,应优化内存的占用。程序只保存必要的数据,一旦数据不需要,设置其值为null来释放