convert a string to number at JavaScript.
- +
+'12'; // 12
typeof +'12' // number
+'12s'; // NaN
typeof +'12s'; // number
- *
'12' * 1; // 12
typeof('12' * 1); // number
typeof '12' * 1; // NaN
'12s' * 1 // NaN
typeof('12s' * 1) // number
- ~~
~~'12' // 12
typeof ~~'12' // number
~~'12s' // 0
typeof ~~'12s' //number
My platform: Mac OS X 10.8.4 Intel core i5 2.5GHz
Nodejs v0.10.15
- convert
'12'
to12
function plusConvert(){
console.time('plusConvert');
for(var i = 0; i < 1000000; i++){
+'12';
}
console.timeEnd('plusConvert');
}
function multipConvert(){
console.time('multipConvert');
for(var i = 0; i < 1000000; i++){
'12' * 1;
}
console.timeEnd('multipConvert');
}
function andnConvert(){
console.time('andnConvert');
for(var i = 0; i < 1000000; i++){
~~'12';
}
console.timeEnd('andnConvert');
}
function convert(){
plusConvert();
multipConvert();
andnConvert();
}
convert();
And result times: 1000000
:
+ | 39ms | 38ms | 39ms | 39ms | 38ms | 39ms | 39ms | 38ms | 38ms | 38ms |
* 1 | 47ms | 53ms | 51ms | 49ms | 46ms | 44ms | 42ms | 43ms | 44ms | 41ms |
~~ | 39ms | 41ms | 40ms | 39ms | 41ms | 40ms | 48ms | 45ms | 43ms | 42ms |
+ | 382ms | 394ms | 385ms | 388ms | 388ms | 386ms | 380ms | 378ms | 392ms | 385ms |
* 1 | 374ms | 374ms | 374ms | 374ms | 375ms | 373ms | 373ms | 373ms | 373ms | 389ms |
~~ | 358ms | 359ms | 356ms | 357ms | 358ms | 359ms | 356ms | 363ms | 358ms | 358ms |
function multipConvert(){
console.time('multipConvert');
for(var i = 0; i < 1000000; i++){
'12s' * 1;
}
console.timeEnd('multipConvert');
}
function andnConvert(){
console.time('andnConvert');
for(var i = 0; i < 1000000; i++){
~~'12s';
}
console.timeEnd('andnConvert');
}
function convert(){
plusConvert();
multipConvert();
andnConvert();
}
convert();
And result `times: 1000000`:
<table>
<tr><td> + </td><td>100ms</td><td>115ms</td><td>98ms</td><td>98ms</td><td>112ms</td><td>120ms</td><td>107ms</td><td>106ms</td><td>107ms</td><td>104ms</td></tr>
<tr><td>* 1</td><td>103ms</td><td>93ms</td><td>94ms</td><td>93ms</td><td>99ms</td><td>101ms</td><td>97ms</td><td>95ms</td><td>100ms</td><td>96ms</td></tr>
<tr><td>~~</td><td>84ms</td><td>83ms</td><td>85ms</td><td>83ms</td><td>85ms</td><td>84ms</td><td>84ms</td><td>86ms</td><td>92ms</td><td>90ms</td></tr>
<table>
And result `times: 10000000`:
<table>
<tr><td> + </td><td>936ms</td><td>930ms</td><td>939ms</td><td>936ms</td><td>932ms</td><td>939ms</td><td>936ms</td><td>933ms</td><td>936ms</td><td>949ms</td></tr>
<tr><td>* 1</td><td>922ms</td><td>929ms</td><td>929ms</td><td>924ms</td><td>925ms</td><td>922ms</td><td>940ms</td><td>925ms</td><td>924ms</td><td>941ms</td></tr>
<tr><td>~~</td><td>822ms</td><td>821ms</td><td>825ms</td><td>841ms</td><td>824ms</td><td>823ms</td><td>824ms</td><td>823ms</td><td>824ms</td><td>826ms</td></tr>
<table>