[TOC]
## 减少对象成员的查找次数和嵌套深度
[来源](https://github.com/chenjigeng/blog/blob/master/javasciprt%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96.md)
```
// 进行两次对象成员查找
function hasEitherClass(element, className1, className2) {
return element.className === className1 || element.className === className2;
}
// 优化,如果该变量不会改变,则可以使用局部变量保存查找的内容
function hasEitherClass(element, className1, className2) {
const currentClassName = element.className;
return currentClassName === className1 || currentClassName === className2;
}
```
## 减少DOM操作 使用局部变量储存dom节点
```
// 优化前,在每次循环的时候,都要获取id为t的节点,并且设置它的innerHTML�
function innerHTMLLoop () {
for (let count = 0; count < 15000; count++) {
document.getElementById('t').innerHTML += 'a';
}
}
// 优化后,
function innerHTMLLoop () {
const tNode = document.getElemenById('t');
const insertHtml = '';
for (let count = 0; count < 15000; count++) {
insertHtml += 'a';
}
tNode.innerHtml += insertHtml;
}
```