建议23:推荐提高条件性能的策略
与循环相似,条件表达式决定JavaScript 运行流的走向。与其他语言一样,JavaScript也采用了if 和switch 两种条件结构。由于不同浏览器针对流程控制进行了不同的优化,因此两者在性能上并没有特别大的差异,主要还是根据需求形式进行分析和选择:条件数量较大,建议选择switch 结构,而不是if结构,这样可以使代码更易读;如果条件较少时,建议选择if结构。
- //条件少
- if(found) {
- //执行代码
- } else {
- //执行代码
- }
- //条件多
- switch (color) {
- case "red":
- //执行代码
- break;
- case "blue":
- //执行代码
- break;
- case "brown":
- //执行代码
- break;
- case "black":
- //执行代码
- break;
- default:
- //执行代码
- }
事实证明,在大多数情况下,switch比if运行更快,但是只有当条件体数量很大时才明显更快。switch与if的主要性能区别在于:当条件体增加时,if性能负担增加的程度比switch 更大。因此,从性能方面考虑,如果条件体较少,应使用if;如果条件体较多,应使用switch。
一般来说,if适用于判断两个离散的值或几个不同的值域。如果判断多于两个离散值,那么switch将是更理想的选择。