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'      //numberMy 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>