Javascript
一、组成成分
script:脚本语言部分
DOM:把页面结构映射到js对象
BOM:浏览器信息,如Navigator、Location等
二、能力
script:脚本程序能力
DOM:
页面结构其实就是XML —— JS也有很好解析XML能力
浏览器:
Http请求带ip信息到服务器 —— 读取ip(Geolocation API)
上传本地文件 —— 读取本地文件(File API)
浏览器上可以显示页面加载时间 —— 读取加载效率信息(performance对象)
缓存 —— cookie、storage、IndexedDB
三、性能
script:
- 查询变量方式,是从内往外一层层的作用域查找 —— 少用全局变量;用临时变量保存全局变量
- 属性查找的时间复杂是O(n) —— 多次多层属性查找时,用临时变量保存前面部分
- 内存采用垃圾回收机制 —— 不需要的对象,取消变量对它的引用
- 闭包,会保留外部函数作用域内全部变量 —— 外部函数不需要的对象,要取消对它引用
// 大的全局变量不需要再使用时,可以取消对它的引用,便于内存回收 xx = f(Global_Var); Global_Var = null;
// 存在闭包函数,所以外部函数全部变量引用的内存都不会被回收 // 于是ele这个大内存,会一直留着而不被回收 function(){ var ele = document.getElementById("myId"); return function() { return ele.value; } } function(){ var ele = document.getElementById("myId"); var value = ele.value; ele = null; // 取消ele对dom内存的引用关系,那么dom内存不再有引用指向它,可以被回收 return function() { return value; } }
DOM:
- 操作dom消耗内存和CPU非常大 —— 尽量少次数更新dom树