var strNum = "10000"
var parseNum = parseInt(strNum)
var multiplyNum = strNum * 1
typeof strNum
// "string"
typeof parseNum
// "number"
typeof multiplyNum
// "number"
parseNum
// 10000
multiplyNum
// 10000
接著比較兩種方式的效能
function testA(time, str) {
for (i=0;i<time;++i) {
var tmp = parseInt(str);
}
}
function testB(time, str) {
for (i=0;i<time;++i) {
var tmp = str * 1;
}
}
console.time('testA');
testA(10000000, "12345678");
console.timeEnd('testA');
// testA: 1226.073974609375ms
console.time('testB');
testB(10000000, "12345678");
console.timeEnd('testB');
// testB: 622.14208984375ms
console.time('testA');
testA(10000000, "82736491");
console.timeEnd('testA');
// testA: 1202.213134765625ms
console.time('testB');
testB(10000000, "82736491");
console.timeEnd('testB');
// testB: 619.800048828125ms
console.time('testA');
testA(10000000, "1");
console.timeEnd('testA');
// testA: 95.97900390625ms
console.time('testB');
testB(10000000, "1");
console.timeEnd('testB');
// testB: 67.47216796875ms
console.time('testA');
testA(10000000, "");
console.timeEnd('testA');
// testA: 719.873779296875ms
console.time('testB');
testB(10000000, "");
console.timeEnd('testB');
// testB: 235.06103515625ms
console.time('testA');
testA(10000000, "0");
console.timeEnd('testA');
// testA: 92.878173828125ms
console.time('testB');
testB(10000000, "0");
console.timeEnd('testB');
// testB: 74.76416015625ms