日期:2014-05-16  浏览次数:20403 次

js switch与elseif做浏览器执行速度对比
<script type="text/javascript">
	var count,n;
	var startTimeSwitch = new Date().getTime();
	count = 10000;
	sum = count;
	n = 9;
	while (sum>0) {
		switch (n) {
			case 1 :
				sum--;
				break;
			case 2 :
				sum--;
				break;
			case 3 :
				sum--;
				break;
			case 4 :
				sum--;
				break;
			case 5 :
				sum--;
				break;
			case 6 :
				sum--;
				break;
			case 7 :
				sum--;
				break;
			case 8 :
				sum--;
				break;
			case 9 :
				sum--;
				break;
			case 10 :
				sum--;
				break;
			default :
				sum--;
				break;
		}
	}
	var endTimeSwitch = new Date().getTime();
	var startTimeElseIf = new Date().getTime();
	sum = count;
	while(sum>0){
		if (n == 1) {
			sum--;
		}else if (n == 2) {
			sum--;
		}else if (n == 3) {
			sum--;
		}else if (n == 4) {
			sum--;
		}else if (n == 5) {
			sum--;
		}else if (n == 6) {
			sum--;
		}else if (n == 7) {
			sum--;
		}else if (n == 8) {
			sum--;
		}else if (n == 9) {
			sum--;
		}else if (n == 10) {
			sum--;
		}else {
			sum--;
		}
	}
	var endTimeElseIf = new Date().getTime();
	alert("switch共用时:"+(endTimeSwitch-startTimeSwitch)+"毫秒---elseif共用时:"+(endTimeElseIf-startTimeElseIf)+"毫秒");
</script>


countIE9(毫秒)switch/elseifFireFox-v10.2(毫秒)switch/elseifchrome-v19(毫秒)switch/elseif
1000/01/10/0
10000/01/10/0
100000/02/10/2
1000001/32/24/1
100000017/205/1315/10
10000000108/11916/8586/52
100000000974/1156261/838637/516
10000000009028/129182553/86696164/5483


测试结果很意外,chrome对switch与elseif执行速度几乎持平,在chrome下使用elseif会更好些。