今天写个小实验
是关于键值对应取值,与switch case 判断的
如:
var objectData = {
"a": 1,
"b": 1,
"c": 1,
"d": 1,
"e": 1,
"f": 1,
"g": 1,
"h": 1,
"i": 1,
"j": 1,
"k": 1
}
var z=objectData["k"];
var key="k",z;//a,k应该是最快与最慢
switch (key) {
case "a":
z = 1;
break;
case "b":
break;
case "c":
break;
case "d":
break;
case "e":
break;
case "f":
break;
case "g":
break;
case "h":
break;
case "i":
break;
case "j":
break;
case "k":
z = 1;
break;
}
下面是测试的代码
var c = 10;
while (c--) {
var d1 = new Date().getTime()
, objectData
, i = 2000000
, z;
objectData = {
"a": 1,
"b": 1,
"c": 1,
"d": 1,
"e": 1,
"f": 1,
"g": 1,
"h": 1,
"i": 1,
"j": 1,
"k": 1
}
while (i--) {
z = objectData["k"];
}
console.log(new Date().getTime() - d1);
}
//---------------验证的时候最好在2个不同的作用域下面----------------
var c = 10;
while (c--) {
var d1 = new Date().getTime()
, i = 2000000
, key = "k"//a,k应该是最快与最慢
, z;
while (i--) {
switch (key) {
case "a":
z = 1;
break;
case "b":
break;
case "c":
break;
case "d":
break;
case "e":
break;
case "f":
break;
case "g":
break;
case "h":
break;
case "i":
break;
case "j":
break;
case "k":
z = 1;
break;
}
}
console.log(new Date().getTime() - d1);
}
本次实验参与的浏览器有:谷歌,FF,IE7-9,更多浏览器的测试结果,会在后期补上
实验结果请看官移步fe2菜园子